JP6151365B2 - 情報処理システム、情報処理方法及びプログラム - Google Patents

情報処理システム、情報処理方法及びプログラム Download PDF

Info

Publication number
JP6151365B2
JP6151365B2 JP2015535188A JP2015535188A JP6151365B2 JP 6151365 B2 JP6151365 B2 JP 6151365B2 JP 2015535188 A JP2015535188 A JP 2015535188A JP 2015535188 A JP2015535188 A JP 2015535188A JP 6151365 B2 JP6151365 B2 JP 6151365B2
Authority
JP
Japan
Prior art keywords
data
version
write
identification information
server device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015535188A
Other languages
English (en)
Other versions
JPWO2015033388A1 (ja
Inventor
浩太郎 遠藤
浩太郎 遠藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Publication of JPWO2015033388A1 publication Critical patent/JPWO2015033388A1/ja
Application granted granted Critical
Publication of JP6151365B2 publication Critical patent/JP6151365B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明の実施形態は、情報処理システム、サーバ装置、情報処理方法及びプログラムに関する。
情報処理システムで記憶するデータの整合性を保つための技術が知られている。当該技術には、例えば、データ更新時の処理順序性を保証できるようにする方法などがある。
また、データを記憶する手法の1つとしてキーバリューストアが知られている。キーバリューストアは、データ(バリュー)と、当該データを識別するためのキーとが関連付けられたデータ構造によりデータを記憶する。一般に、キーバリューストアは、ネットワークを介したクライアントサーバシステムやクラウドシステムなどで利用される。すなわち、キーバリューストアによりデータを記憶するサーバ装置と、当該キーバリューストアにアクセスするクライアント装置とを備えるシステムで利用されている。クライアント装置は、キーを指定することによりキーバリューストアのデータを読み出す。また、クライアント装置は、キーとデータ(バリュー)との組によりキーバリューストアを更新する。
特開2003−242016号公報
しかしながら、キーバリューストアは、トランザクション型データベースとは異なり、データの整合性を保つことが難しい。例えば、キーバリューストアは、クライアント装置から同時並列的にアクセスされても、当該アクセスの順序を調停することができない。また、キーバリューストアは、ネットワークの遅延や障害などによって、クライアント装置から送信されたアクセス要求の順序が入れ替わった場合であってもそのまま処理してしまう。
実施形態の情報処理システムは、サーバ装置と、現用系のシステムである第1のクライアント装置と、待機系のシステムである第2のクライアント装置とを備える。サーバ装置は、第1の記憶部と、受信部と、記憶制御部とを備える。第1の記憶部は、データと、前記データを記憶する場所を識別する第1識別情報と、前記データのバージョンとを関連付けて記憶する。受信部は、前記第1の記憶部に書き込むデータを示す書き込みデータと、前記書き込みデータを記憶する場所を識別する第2識別情報と、前記書き込みデータのバージョンを示す書き込みバージョンとを含む書き込み要求を前記第1及び第2のクライアント装置から受信する。記憶制御部は、前記第2識別情報と一致する前記第1識別情報に関連付けられた前記データのバージョンが、前記書き込みバージョンより小さい場合、前記第1識別情報に関連付けられたデータとバージョンとを、前記書き込みデータと前記書き込みバージョンにそれぞれ書き換える。第1及び第2のクライアント装置は、送信部と決定部と第2の記憶部とを備える。送信部は、前記書き込み要求を前記サーバ装置に送信する。決定部は、前記書き込みバージョンを決定する。第2の記憶部は、前記第2識別情報毎に前記決定部が決定した書き込みバージョンを記憶する。前記第1のクライアント装置の決定部は、前記書き込み要求を前記サーバ装置に送信するときに、前記第2の記憶部に記憶されている前記書き込みバージョンに所定の値を加算することにより、送信する前記書き込み要求の前記書き込みバーションを決定する。前記第2のクライアント装置の決定部は、前記第1のクライアント装置から前記第2のクライアント装置に切り替わるときに、前記サーバ装置のデータを変更する場合、変更するデータの前記バージョンを読み出し、読み出した前記バージョンに、前記所定の値よりも大きい値を加算することにより、前記変更するデータの前記書き込みバージョンを決定する。
図1は、第1実施形態の情報処理システムの構成の一例を示す図である。 図2は、第1実施形態のサーバ装置及びクライアント装置の構成の一例を示す図である。 図3は、第1実施形態のサーバ装置の記憶部のデータ構造の一例を示す図である。 図4は、第1実施形態のクライアント装置とサーバ装置との間で、データの書き込み時に送受信するデータの一例を説明するための図である。 図5は、第1実施形態のクライアント装置がデータを書き込むときの動作の一例を示すフローチャートである。 図6は、第1実施形態のサーバ装置が書き込み要求を受信したときの動作の一例を示すフローチャートである。 図7は、第1実施形態のクライアント装置とサーバ装置との間で、データの読み出し時に送受信するデータの一例を説明するための図である。 図8は、第1実施形態のクライアント装置がデータを読み出すときの動作の一例を示すフローチャートである。 図9は、第1実施形態のサーバ装置が読み出し要求を受信したときの動作の一例を示すフローチャートである。 図10は、第2実施形態のサーバ装置及びクライアント装置の構成の一例を示す図である。 図11は、第2実施形態のクライアント装置とサーバ装置との間で、データの書き込み時に送受信するデータの一例を説明するための図である。 図12は、第2実施形態のクライアント装置がデータを書き込むときの動作の一例を示すフローチャートである。 図13は、第3実施形態の情報処理システムの構成の一例を示す図である。 図14は、第3実施形態のサーバ装置及びクライアント装置の構成の一例を示す図である。 図15は、第3実施形態の情報処理システムでフェイルオーバー(系切替)が発生したときの動作の一例を示すフローチャートである。 図16は、第4実施形態のサーバ装置及びクライアント装置の構成の一例を示す図である。 図17は、第4実施形態のクライアント装置がデータの合意をとるときの動作の一例を示すフローチャートである。 図18は、第1〜第4実施形態のサーバ装置及びクライアント装置のハードウェア構成の一例を示す図である。
以下、添付図面を参照して実施形態の情報処理システム、情報処理方法及びプログラムについて説明する。
(第1実施形態)
図1は、第1実施形態の情報処理システム100の構成の一例を示す図である。本実施形態の情報処理システム100は、サーバ装置10と、クライアント装置20−1、・・・、クライアント装置20−n(nは1以上の整数)と、ネットワーク30とを備える。以下、クライアント装置20−1、・・・、及びクライアント装置20−nを区別する必要がない場合は、単にクライアント装置20という。サーバ装置10及びクライアント装置20は、互いに通信できるようにネットワーク30を介して接続されている。なお、サーバ装置10及びクライアント装置20との間の通信手段は、有線であっても無線であってもよく、また、両方を組み合わせてもよい。
図2は、第1実施形態のサーバ装置10及びクライアント装置20の構成の一例を示す図である。本実施形態のサーバ装置10は、記憶部11、受信部12、記憶制御部13及び送信部14を備える。記憶部11は、データを記憶する。
図3は、第1実施形態のサーバ装置10の記憶部11のデータ構造の一例を示す図である。記憶部11は、データ(バリュー)と、当該データを記憶する場所を識別するためのキー(本発明の「第1識別情報」に相当)と、当該データのバージョンとを関連付けて記憶する。
図2に戻り、受信部12は、書き込み要求又は読み出し要求をクライアント装置20から受信すると、当該書き込み要求又は当該読み出し要求を記憶制御部13に送信する。書き込み要求は、記憶部11に書き込むデータを示す書き込みデータと、書き込みデータを記憶する場所を識別するための書き込みキー(本発明の「第2識別情報」に相当)と、書き込みデータのバージョンを示す書き込みバージョンとを含む。読み出し要求は、記憶部11から読み出すデータが記憶されている場所を識別するための読み出しキーを含む。
記憶制御部13は、書き込み要求又は読み出し要求を受信部12から受信する。記憶制御部13は、書き込み要求を受信部12から受信した場合、書き込みキーと一致する記憶部11のキーに関連付けられたデータのバージョンと、書き込みバージョンとの比較結果に応じて、記憶部11に書き込みデータを記憶するか否かを制御する。そして、記憶制御部13は、書き込みの成功又は失敗を示す終了ステータスを送信部14に送信する。なお、記憶制御部13の記憶制御の詳細な説明は、図6のフローチャートを参照して後述する。
記憶制御部13は、読み出し要求を受信部12から受信した場合、読み出し要求に含まれる読み出しキーと一致する記憶部13のキーに関連付けられたデータと、当該データのバージョンとを記憶部11から読み出す。記憶制御部13は、当該データと、当該データのバージョンとを含む応答データを作成し、当該応答データを送信部14に送信する。
送信部14は、記憶制御部13から受信したデータをクライアント装置20に送信する。当該データは、書き込み要求の終了ステータスや、読み出し要求の応答データ(データ及び当該データのバージョン)である。
クライアント装置20は、送信部21、記憶部22、決定部23及び受信部24を備える。送信部21は、読み出しキーを含む読み出し命令を決定部23から受信すると、当該読み出しキーを含む読み出し要求を生成し、当該読み出し要求をサーバ装置10に送信する。決定部23は、例えば、クライアント装置20で動作するアプリケーションプログラムにより生成される機能ブロックである。
また、送信部21は、書き込みバージョン、書き込みキー及び書き込みデータを含む書き込み命令を決定部23から受信すると、当該書き込みバージョン、書き込みキー及び書き込みデータを含む書き込み要求を生成する。送信部21は、当該書き込み要求をサーバ装置10に送信する。
記憶部22は、書き込みキー毎に書き込みバージョンを記憶する。決定部23は、サーバ装置10のデータの書き込み処理が発生したときに、書き込み命令を生成し、当該書き込み命令を送信部21に送信する。当該書き込み処理は、決定部23が自らの処理の契機により発生させてもよいし、決定部23が、図2では図示されない他の機能ブロックから書き込みを指示されたときに発生させてもよい。決定部23は、当該書き込み処理に応じて定まる書き込みデータの書き込みキーを使用して記憶部22から書き込みバージョンを読み出す。決定部23は、当該書き込みバージョンに所定の値を加算することにより、送信する書き込み要求の書き込みバーョンを決定する。所定の値は例えば1である。なお、所定の値は1に限られず任意の値でよい。また、書き込みバージョンの記憶サイズは、例えば64bit長の符号なし整数である。また、書き込みバージョンの初期値は、例えば0である。
決定部23は、当該書き込みキーと、決定した書き込みバージョンとを関連付けて記憶部22に記憶するとともに、当該書き込みキーと、当該決定した書き込みバージョンと、当該書き込みデータとを含む書き込み命令を送信部21に送信する。
また、決定部23は、サーバ装置10のデータの読み出し処理が発生したときに、読み出し命令を生成し、当該読み出し命令を送信部21に送信する。当該読み出し処理は、決定部23が自らの処理の契機により発生させてもよいし、決定部23が、図2では図示されない他の機能ブロックから書き込みを指示されたときに発生させてもよい。
受信部24は、書き込み要求の終了ステータスや、読み出し要求の応答データなどをサーバ装置10から受信する。受信した内容は、決定部23へ伝達される。
次に、第1実施形態のクライアント装置20がサーバ装置10にデータを書き込む方法の一例について説明する。図4は、第1実施形態のクライアント装置20とサーバ装置10との間で、データの書き込み時に送受信するデータの一例を説明するための図である。図5は、第1実施形態のクライアント装置20がデータを書き込むときの動作の一例を示すフローチャートである。図6は、第1実施形態のサーバ装置10が書き込み要求を受信したときの動作の一例を示すフローチャートである。
まず、図4及び図5を参照してクライアント装置20の動作について説明する。決定部23で書き込み処理が発生する(ステップS1)。
次に、決定部23は、当該書き込み処理に応じて定まる書き込みキーを使用して記憶部22から書き込みバージョンを読み出す。決定部23は、当該書き込みバージョンに所定の値を加算することにより、送信する書き込み要求の書き込みバーョンを決定する(ステップS2)。
次に、決定部23は、当該書き込みバージョン、書き込みキー及び書き込みデータを含む書き込み命令を送信部21に送信する。決定部23は、当該書き込みキーと、決定した書き込みバージョンとを関連付けて記憶部22に記憶する(ステップS3)。
次に、送信部21は、決定部23から書き込みバージョン、書き込みキー及び書き込みデータを含む書き込み命令を受信すると、当該書き込みバージョン、書き込みキー及び書き込みデータを含めた書き込み要求をサーバ装置10に送信する(ステップS4)。次に、受信部24は、書き込み要求の終了ステータスをサーバ装置10から受信する(ステップS5)。なお、受信部24が、一定の時間が経過しても、終了ステータスを受信しない場合、送信部21は、当該書き込み要求を再送する。
次に、図4及び図6を参照してサーバ装置10の動作について説明する。受信部12は、書き込み要求をクライアント装置20から受信する(ステップS11)。受信部12は、当該書き込み要求を記憶制御部13に送信する。記憶制御部13は、書き込み要求を受信部12から受信する。
次に、記憶制御部13は、書き込みキーと一致する記憶部11のキーに関連付けられたデータのバージョンが、書き込みバージョンより小さいか否かを判定する(ステップS12)。書き込みキーと一致する記憶部11のキーに関連付けられたデータのバージョンが、書き込みバージョンより小さい場合(ステップS12、Yes)、記憶部11の当該キーに関連付けられたデータとバージョンとを、書き込みデータと書き込みバージョンとにそれぞれ書き換え(ステップS14)、ステップS17に進む。書き込みキーと一致する記憶部11のキーに関連付けられたデータのバージョンが、書き込みバージョン以上である場合(ステップS12、No)、ステップS13に進む。
次に、記憶制御部13は、書き込みキーと一致する記憶部11のキーに関連付けられたデータのバージョンが、書き込みバージョンと一致し、かつ、書き込みキーと一致する記憶部11のキーに関連付けられたデータと、書き込みデータとが一致するか否かを判定する(ステップS13)。一致する場合(ステップS13、Yes)、書き込みの成功とし(ステップS15)、ステップS17に進む。すなわち、この場合(ステップS13、Yes)の書き込み要求は、記憶制御部13がリトライ(再送信)であると判断して書き込みの成功として扱う。
一致しない場合(ステップS13、No)、記憶制御部13は、書き込み要求に含まれる書き込みバージョンの指定を受け付けることができないため、書き込みデータを記憶部11に記憶せずにバージョンエラーとし(ステップS16)、ステップS17に進む。
次に、記憶制御部13は、書き込みの成功(ステップS14又はステップS15の場合)又は失敗(ステップS16の場合)を示す終了ステータスを、送信部14を介してクライアント装置20に送信する(ステップS17)。
次に、第1実施形態のクライアント装置20がサーバ装置10からデータを読み出す方法の一例について説明する。図7は、第1実施形態のクライアント装置20とサーバ装置10との間で、データの読み出し時に送受信するデータの一例を説明するための図である。図8は、第1実施形態のクライアント装置20がデータを読み出すときの動作の一例を示すフローチャートである。図9は、第1実施形態のサーバ装置10が読み出し要求を受信したときの動作の一例を示すフローチャートである。
まず、図7及び図8を参照してクライアント装置20の動作について説明する。クライアント装置20の決定部23で読み出し処理が発生する(ステップS21)。次に、送信部21は、当該読み出し処理に応じて定まる読み出しキーを決定部23から受けとり、それを含む読み出し要求をサーバ装置10に送信する(ステップS22)。次に、受信部24は、読み出し要求に応じて応答データをサーバ装置10から受信する(ステップS23)。応答データは、サーバ装置10の記憶部11から読み出されたデータ及び当該データのバージョンである。
次に、図7及び図9を参照してサーバ装置10の動作について説明する。受信部12は、読み出し要求をクライアント装置20から受信する(ステップS31)。受信部12は、当該読み出し要求を記憶制御部13に送信する。記憶制御部13は、読み出し要求を受信部12から受信する。次に、記憶制御部13は、読み出し要求に含まれる読み出しキーと一致する記憶部11のキーに関連付けられたデータ及びバージョンを記憶部11から読み出す(ステップS32)。記憶制御部13は、当該データ及び当該データのバージョンを含む応答データを生成する。次に、記憶制御部13は、当該応答データを、送信部14を介してクライアント装置20に送信する(ステップS33)。
次に、本実施形態の情報処理システム100の情報処理方法の効果について説明する。例えば、本実施形態の情報処理方法は、下記のシナリオ1のような場合に、サーバ装置10の記憶部11の状態と、クライアント装置20による書き込み処理との間で不整合を引き起こさないようにすることができる。なお、下記の例では、決定部23が、バージョンに加算する所定の値を1とする。
<シナリオ1>
1.クライアント装置20が、書き込み要求A(キーK、データA、バージョンV)をサーバ装置10に送信する。
2.サーバ装置10は、ネットワーク30の遅延などの影響により、書き込み要求Aを受信しない。
3.クライアント装置20は、書き込み要求Aを送信してから所定の時間内に終了ステータスをサーバ装置10から受信しないため、書き込み要求Aの送信処理がタイムアウトする。
4.クライアント装置20は、書き込み要求A’(キーK、データA、バージョンV)をサーバ装置10に送信する(書き込み要求Aの再送)。
5.サーバ装置10は、書き込み要求A’を先に受信して書き込み処理を行う。記憶部11の内容は、(キーK,データA、バージョンV)となる。
6.クライアント装置20が、書き込み要求B(キーK、データB、バージョンV+1)をサーバ装置10に送信する。
7.サーバ装置10は、書き込み要求Bを受信して書き込み処理を行う。記憶部11の内容は、(キーK,データB、バージョンV+1)となる。
8.仮に、サーバ装置10は、遅延していた書き込み要求A(キーK、データA、バージョンV)を受信したとしても、(書き込み要求のバージョン)<(記憶部11のバージョンV+1)であるため、書き込み要求Aの書き込み処理を行わない。
以上のように、本実施形態の情報処理システム100では、ネットワーク30が高品質ではなく、書き込み要求の遅延や紛失などが起こりうる場合であっても、サーバ装置10の記憶部11の状態と、クライアント装置20による書き込み処理との間で不整合を引き起こさないようにすることができる。例えば、本実施形態の情報処理システム100は、サーバ装置10で書き込み要求Aと書き込み要求Bの受信順序が逆転して受信された場合であっても、書き込み要求Bによって更新した記憶部11のデータBが、書き込み要求Aによって上書きされることがない。そのため、サーバ装置10の記憶部11の状態と、クライアント装置20による書き込み処理との間で不整合を引き起こさないようにすることができる。
なお、本実施形態の情報処理システム100は、クライアント装置20の数をn(nは1以上の整数)とし、それぞれのクライアント装置20の記憶部22は、書き込みキー毎に書き込みバージョンを記憶する。そのため、同じキーのデータを更新するクライアント装置20が複数ある場合は、当該クライアント装置20は、互いに使用したバージョンの値を通知することにより、記憶部22の内容を同期してもよい。例えば、当該クライアント装置20は、書き込み要求を送信する前に、同じキーのデータを更新する他のクライアント装置20に、書き込みキー及び当該書き込みキーに使用したバージョンを通知する。
また、複数のクライアント装置20の決定部23がバージョンを決定するときに加算する所定の値を、クライアント装置20毎に変えてもよい。例えば、複数のクライアント装置20の決定部23が加算する所定の値を、互いに素な整数としてもよい。これにより、サーバ装置10の記憶部11のデータを更新したクライアント装置20を特定するときなどに、バージョンを利用することができる。
(第2実施形態)
次に、第2実施形態の情報処理システム100について説明する。本実施形態の情報処理システム100の構成は、第1実施形態の情報処理システム100の構成(図1参照)と同じであるため説明を省略する。本実施形態の情報処理システム100は、クライアント装置20でバーョンを記憶しない点が第1実施形態の情報処理システム100と異なる。また、クライアント装置20がサーバ装置10にデータを書き込むときの動作が第1実施形態の動作と異なる。なお、クライアント装置20がサーバ装置10からデータを読み出すときの動作は、第1実施形態の動作と同様であるため説明を省略する。
図10は、第2実施形態のサーバ装置10及びクライアント装置20の構成の一例を示す図である。本実施形態のサーバ装置10の構成は、第1実施形態のサーバ装置10の構成と同じであるため説明を省略する。本実施形態のクライアント装置20の構成は、記憶部22を備えていない点が第1実施形態のクライアント装置20の構成と異なる。
第2実施形態のクライアント装置20がサーバ装置10にデータを書き込む方法の一例について説明する。図11は、第1実施形態のクライアント装置20とサーバ装置10との間で、データの書き込み時に送受信するデータの一例を説明するための図である。図12は、第1実施形態のクライアント装置20がデータを書き込むときの動作の一例を示すフローチャートである。なお、本実施形態のサーバ装置10が書き込み要求を受信したときの動作は、第1実施形態のサーバ装置10の動作と同じであるため説明を省略する。
クライアント装置20の決定部23で書き込み処理が発生する(ステップS41)。次に、送信部21は、書き込み命令に応じて定まる書き込みキーに関連付けられたバージョンを読み出すため、当該書き込みキーを含む読み出し要求をサーバ装置10に送信する(ステップS42)。次に、受信部24は、当該書き込みキーと、当該書き込みキーに関連付けられたバージョンsとを含む応答データをサーバ装置10から受信する(ステップS43)。
受信部24は、当該応答データを決定部23に送信する。次に、決定部23は、当該応答データを受信部24から受信すると、当該応答データに含まれるバージョンsに所定の値を加算することにより書き込みバージョンtを決定する(ステップS44)。決定部23は、当該書き込みキーと書き込みデータとバージョンtとを送信部21に送信する。次に、送信部21は、書き込みキー、書き込みデータ及び当該書き込みデータのバージョンtを含む書き込み要求をサーバ装置10に送信する(ステップS45)。次に、受信部24は、書き込み要求の終了ステータスをサーバ装置10から受信する(ステップS46)。
本実施形態の情報処理システム100によれば、クライアント装置20がバージョンを記憶する記憶部22を備えずに、サーバ装置10の記憶部11の状態と、クライアント装置20による書き込み処理との間で不整合を引き起こさないようにすることができる。
なお、クライアント装置20の送信部21は、所定の時間内にサーバ装置10から終了ステータスを受信できないときなどに、書き込み要求の送信をリトライする場合、上述のステップS42の処理を行わずに、送信した書き込み要求と同じ内容の書き込み要求を送信する(同じバージョンを使用して送信する)。
(第3実施形態)
次に、第3実施形態の情報処理システム100について説明する。図13は、第3実施形態の情報処理システム100の構成の一例を示す図である。本実施形態の情報処理システム100は、サーバ装置10と、クライアント装置20−1及びクライアント装置20−2と、ネットワーク30とを備える。サーバ装置10と、クライアント装置20−1及びクライアント装置20−2とは、互いに通信できるようにネットワーク30を介して接続されている。本実施形態の情報処理システム100は、現用系のシステムであるクライアント装置20−1と、待機系のシステムであるクライアント装置20−2とを備えた冗長システムである。すなわち、現用系のクライアント装置20−1に障害が発生した場合、現用系のクライアント装置20−1から、待機系のクライアント装置20−2にフェイルオーバー(系切替)する。
図14は、第3実施形態のサーバ装置10及びクライアント装置20の構成の一例を示す図である。本実施形態のサーバ装置10の構成は、第1実施形態と同様であるため説明を省略する。本実施形態のクライアント装置20は、送信部21、記憶部22、決定部23、受信部24及び冗長制御部25を備える。本実施形態のクライアント装置20の構成は、第1実施形態のクライアント装置20の構成に冗長制御部25が追加されている。送信部21、記憶部22、決定部23及び受信部24については、第1実施形態のクライアント装置20と同様であるため説明を省略する。
現用系のクライアント装置20−1の冗長制御部25−1は、クライアント装置20−1が正常に動作していることを示す信号(以下、「ハートビート信号」という。)を、ネットワーク30を介して定期的に待機系のクライアント装置20−2の冗長制御部25−2に送信する。待機系の冗長制御部25−2は、所定の時間内にハートビート信号を受信できない場合に、現用系のクライアント装置20−1に障害が発生したことを検出する。待機系の冗長制御部25−2は、現用系のクライアント装置20−1に障害が発生したことを検出するとフェイルオーバー(系切替)を行う。
図15は、第3実施形態の情報処理システムでフェイルオーバー(系切替)が発生したときの動作の一例を示すフローチャートである。なお、図15のフローチャートでは、サーバ装置10のデータの変更に係るフェイルオーバーの処理のみを記載している。待機系の冗長制御部25−2は、現用系のクライアント装置20−1の障害を検出し、フェイルオーバー(系切替)の動作を開始する(ステップS51)。次に、待機系の冗長制御部25−2は、引き継ぐべきデータのキーを特定する(ステップS52)。
次に、送信部21は、当該キーに関連付けられたデータとバージョンを読み出すため、当該キーを含む読み出し要求をサーバ装置10に送信する(ステップS53)。次に、受信部24は、当該キーに関連付けられたデータとバージョンとを含む応答データをサーバ装置10から受信する(ステップS54)。
受信部24は、当該応答データを決定部23に送信する。次に、決定部23は、当該応答データを受信部24から受信すると、当該応答データに含まれるバージョンに所定の値を加算することにより書き込みバージョンを決定する(ステップS55)。決定部23は、当該書き込みキーと当該データとバージョンとを送信部21に送信する。次に、送信部21は、書き込みキー、書き込みデータ及び当該書き込みデータのバージョンを含む書き込み要求をサーバ装置10に送信する(ステップS56)。つまり、同一のデータをバージョンのみ変えて書き戻す。次に、受信部24は、書き込み要求の終了ステータスをサーバ装置10から受信する(ステップS57)。
次に、本実施形態の情報処理システム100の情報処理方法の効果について説明する。例えば、本実施形態の情報処理方法は、フェイルオーバー(系切替)が発生した場合に、サーバ装置10の記憶部11の状態と、クライアント装置20による書き込み処理との間で不整合を引き起こさないようにすることができる。下記、シナリオ2の場合を例にして説明する。なお、下記の例では、決定部23が、バージョンに加算する所定の値を1とする。
<シナリオ2>
1.現用系のクライアント装置20−1が、書き込み要求A(キーK、データA、バージョンV)をサーバ装置10に送信する。
2.サーバ装置10は、ネットワーク30の遅延などの影響により、書き込み要求Aを受信しない。
3.待機系のクライアント装置20−2が、現用系のクライアント装置20−1の障害を検出し、フェイルオーバー(系切替)が発生する。すなわち、クライアント装置20−2が現用系になる。
4.現用系のクライアント装置20−2は、キーKのバージョン(V−1)と引き継ぐデータBをサーバ装置10から読み出す。このとき記憶部11の内容は、(キーK,データB、バージョンV−1)である。
5.現用系のクライアント装置20−2は、書き込み要求B(キーK、データB、バージョンV)をサーバ装置10に送信する。
6.サーバ装置10は、書き込み要求Bを受信して書き込み処理を行う。記憶部11の内容は、(キーK,データB、バージョンV)となる。
7.仮に、サーバ装置10は、遅延していた書き込み要求A(キーK、データA、バージョンV)を受信しても、(記憶部11のキーKのバージョンV)=(書き込み要求AのバージョンV)、かつ、(記憶部11のキーKのデータ(A))≠(書き込み要求Aのデータ(B))であるためバージョンエラーとなり、書き込み要求Aによる書き込み処理を行わない。
また、実施形態の情報処理方法は、スプリットブレインが発生した場合にも効果がある。スプリットブレインとは、ネットワークの障害などによりハートビート信号が待機系のクライアント装置20−2に届かないため、クライアント装置20−2が、現用系のクライアント装置20−1が正常に動作していても、現用系のクライアント装置20−1に障害が発生したと判定してしまう現象である。これにより、現用系のクライアント装置が、意図せずに同時に2台動作してしまうという問題が発生する。スプリットブレインが発生した場合の本実施形態の情報処理方法の効果について、下記シナリオ3を例にして説明する。なお、下記の例では、決定部23が、バージョンに加算する所定の値を1とする。
<シナリオ3>
1.スプリットブレインが発生する。
2.待機系のクライアント装置20−2が、現用系のクライアント装置20−1の障害を検出し、クライアント装置20−2が現用系になる。
3.現用系のクライアント装置20−2は、キーKのバージョン(V−1)と引き継ぐデータBをサーバ装置10から読み出す。このとき記憶部11の内容は、(キーK,データB、バージョンV−1)である。
4.現用系のクライアント装置20−2は、書き込み要求B(キーK、データB、バージョンV)をサーバ装置10に送信する。
5.サーバ装置10は、書き込み要求Bを受信して書き込み処理を行う。記憶部11の内容は、(キーK,データB、バージョンV)となる。
6.以前の現用系のクライアント装置20−1が、書き込み要求A(キーK、データA、バージョンV)をサーバ装置10に送信する。
7.サーバ装置10は、書き込み要求A(キーK、データA、バージョンV)を受信しても、(記憶部11のキーKのバージョンV)=(書き込み要求AのバージョンV)、かつ、(記憶部11のキーKのデータ(B))≠(書き込み要求Aのデータ(A))であるためバージョンエラーとなり、書き込み要求Aによる書き込み処理を行わない(フェンスオフ)。
8.現用系のクライアント装置20−1は、バージョンエラーを示す情報を含む終了ステータスをサーバ装置10から受信することにより、クライアント装置20−2が現用系に移行したことを検出する。
9.現用系のクライアント装置20−1は、自主的に待機系に移行する。
以上のように、本実施形態の情報処理システム100では、クライアント装置20の系切替やスプリットブレインなどが発生した場合であっても、サーバ装置10の記憶部11の状態と、クライアント装置20による書き込み処理との間で不整合を引き起こさないようにすることができる。
なお、上述のステップS55の処理において、決定部23が、応答データに含まれるバージョンに所定の値よりも十分に大きな値を加算することにより書き込みバージョンを決定してもよい。これにより、例えば、クライアント装置20−1が、同一のデータを、バージョンを上げながら何度も更新しているようなときに、系切替やスプリットブレインが発生しても本実施形態の情報処理方法は効果がある。なお、所定の値よりも十分に大きな値は、例えば、(系切替処理の最中に想定される系切替前のクライアント装置20によるデータの更新回数)×(所定の値)よりも大きい値とする。
(第4実施形態)
次に、第4実施形態の情報処理システム100について説明する。本実施形態の情報処理システム100の構成は、第1実施形態の情報処理システム100の構成(図1参照)と同じであるため説明を省略する。ただし、クライアント装置20の数nは、2以上の整数とする。
図16は、第4実施形態のサーバ装置10及びクライアント装置20の構成の一例を示す図である。本実施形態のサーバ装置10の構成は、第1実施形態のサーバ装置10の構成と同じであるため説明を省略する。本実施形態のクライアント装置20は、送信部21、記憶部22、決定部23、受信部24及び合意部26を備える。本実施形態の情報処理システム100は、クライアント装置20が合意部26を更に備える点が第1実施形態の情報処理システム100と異なる。送信部21、記憶部22、決定部23及び受信部24については、第1実施形態のクライアント装置20と同様であるため説明を省略する。
合意部26は、図16では図示されない他の機能ブロックから合意書き込み命令を受信すると、合意書き込み要求を作成し、当該合意書き込み要求をサーバ装置10に送信する。合意書き込み命令は、サーバ装置10に書き込むデータの合意を複数のクライアント装置20の間でとる命令である。合意書き込み要求は、合意をとるデータと、複数のクライアント装置20で同じ書き込みバージョンと、複数のクライアント装置で同じ書き込みキーとを含む書き込み要求である。
合意部26は、合意書き込み要求を送信した後に、合意書き込み要求に含まれる書き込みキーと同じ読み出しキーを含む読み出し要求を、送信部21を介してサーバ装置10に送信する。例えば、合意部26は、合意書き込み要求の終了ステータスを含む応答データをサーバ装置10から受信した後に、当該読み出し要求を送信する。合意部26は、当該読み出し要求の応答データを、受信部24を介してサーバ装置10から受信し、当該応答データに含まれるデータによりサーバ装置10に書き込むデータの合意をとる。
図17は、第4実施形態のクライアント装置20がデータの合意をとるときの動作の一例を示すフローチャートである。合意部26は、クライアント装置20のアプリケーションプログラムなどにより生成された他の機能ブロックから合意書き込み命令を受信する(ステップS61)。次に、合意部26は、合意書き込み要求に使用する書き込みバージョンを決定する(ステップS62)。当該書き込みバージョンは、複数のクライアント装置20で同一の値である。なお、合意書き込み要求に使用するバージョンは、例えば、それぞれのクライアント装置20で予め予約しておいた値を使用するようにしてもよい。
次に、合意部26は、合意をとるデータと、複数のクライアント装置20で同じ書き込みバージョンと、複数のクライアント装置で同じ書き込みキーとを含む合意書き込み要求を作成し、当該合意書き込み要求をサーバ装置10に送信する(ステップS63)。次に、合意部26は、受信部24を介して当該合意書き込み要求の終了ステータスをサーバ装置10から受信する(ステップS64)。次に、合意部26は、合意書き込み要求に含まれる書き込みキーと同じ読み出しキーを含む読み出し要求を、送信部21を介してサーバ装置10に送信する(ステップS65)。次に、合意部26は、当該読み出し要求の応答データを、受信部24を介してサーバ装置10から受信する(ステップS66)。次に、合意部26は、当該応答データに含まれるデータによりサーバ装置10に書き込むデータの合意をとる(ステップS67)。
以上のように、本実施形態の情報処理システム100では、クライアント装置20が合意部26を備えることにより、複数のクライアント装置20の間でサーバ装置10に書き込むデータの合意をとることができる。
なお、上述のステップS64の処理において、合意部26が終了ステータスの値(書き込み成功又は失敗)を判定し、読み出し要求の送信(ステップS65)が必要であるか否かを決定してもよい。すなわち、書き込みが成功している場合は、自身が送信した書き込みデータが書き込まれたこと(自身が送信した書き込みデータにより合意がとれたこと)を示すため、ステップS65〜ステップS67の処理を省略することができる。
本実施形態の情報処理方法は、例えば、分散システムにおけるリーダ選出やアトミックブロードキャストなどの合意問題に利用できる。また、本実施形態の情報処理方法は、他のクライアント装置20の故障に影響されずに合意をとることができる。すなわち、本実施形態の情報処理方法は、他のクライアント装置20が故障している場合であっても処理を中断することなく合意をとることができる。
最後に、第1〜第4実施形態のサーバ装置10及びクライアント装置20のハードウェア構成の一例について説明する。図18は、第1〜第4実施形態のサーバ装置10及びクライアント装置20のハードウェア構成の一例を示す図である。
第1〜第4実施形態のサーバ装置10及びクライアント装置20は、制御装置41、主記憶装置42、補助記憶装置43、表示装置44、入力装置45及び通信装置46を備える。制御装置41、主記憶装置42、補助記憶装置43、表示装置44、入力装置45及び通信装置46は、バス47を介して互いに接続されている。
制御装置41は、補助記憶装置43から主記憶装置42に読み出されたプログラムを実行する。主記憶装置42は、ROM(Read Only Memory)やRAM(Random Access Memory)等のメモリである。補助記憶装置43は、例えば、ハードディスクやメモリカード等である。表示装置44は、サーバ装置10及びクライアント装置20の状態等を表示する画面である。表示装置44は、例えば、液晶ディスプレイ等である。入力装置45は、サーバ装置10及びクライアント装置20を操作するためのインタフェースである。入力装置45は、例えば、キーボードやマウス等である。通信装置46は、ネットワークに接続するためのインタフェースである。
本実施形態のサーバ装置10及びクライアント装置20で実行されるプログラムを、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、メモリカード、CD−R及びDVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録し、コンピュータ・プログラム・プロダクトとして提供してもよい。また、本実施形態のサーバ装置10及びクライアント装置20で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供してもよい。また、本実施形態のサーバ装置10及びクライアント装置20で実行されるプログラムをダウンロードさせずに、インターネット等のネットワーク経由で提供、又は配布してもよい。また、本実施形態のサーバ装置10及びクライアント装置20のプログラムを、ROM等に予め組み込んで提供してもよい。
本実施形態のサーバ装置10で実行されるプログラムは、上述したサーバ装置10の各機能ブロックのうち、プログラムとしても実現可能な機能ブロック(受信部12、記憶制御部13及び送信部14)を含むモジュール構成となっている。
また、本実施形態のクライアント装置20で実行されるプログラムは、上述したクライアント装置20の各機能ブロックのうち、プログラムとしても実現可能な機能ブロック(送信部21、決定部23、受信部24、冗長制御部25及び合意部26)を含むモジュール構成となっている。
当該モジュールは、実際のハードウェアとしては、制御装置41が上記記憶媒体からプログラムを読み出して実行することにより、上記各モジュールが主記憶装置42上にロードされる。すなわち、上記各モジュールは、主記憶装置42上に生成される。なお、サーバ装置10及びクライアント装置20の各機能ブロックの一部、又は全部を、プログラムにより実現せずに、IC(Integrated Circuit)等のハードウェアにより実現してもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
10 サーバ装置
11 記憶部
12 受信部
13 記憶制御部
14 送信部
20 クライアント装置
21 送信部
22 記憶部
23 決定部
24 受信部
25 冗長制御部
26 合意部
30 ネットワーク
41 制御装置
42 主記憶装置
43 補助記憶装置
44 表示装置
45 入力装置
46 通信装置
47 バス

Claims (10)

  1. サーバ装置と、現用系のシステムである第1のクライアント装置と、待機系のシステムである第2のクライアント装置とを備える情報処理システムであって、
    前記サーバ装置は、
    データと、前記データを記憶する場所を識別する第1識別情報と、前記データのバージョンとを関連付けて記憶する第1の記憶部と、
    前記第1の記憶部に書き込むデータを示す書き込みデータと、前記書き込みデータを記憶する場所を識別する第2識別情報と、前記書き込みデータのバージョンを示す書き込みバージョンとを含む書き込み要求を前記第1及び第2のクライアント装置から受信する受信部と、
    前記第2識別情報と一致する前記第1識別情報に関連付けられた前記データのバージョンが、前記書き込みバージョンより小さい場合、前記第1識別情報に関連付けられたデータとバージョンとを、前記書き込みデータと前記書き込みバージョンとにそれぞれ書き換える記憶制御部と、
    を備え、
    前記第1及び第2のクライアント装置は、
    前記書き込み要求を前記サーバ装置に送信する送信部
    前記書き込みバージョンを決定する決定部と、
    前記第2識別情報毎に前記決定部が決定した書き込みバージョンを記憶する第2の記憶部と、
    を備え、
    前記第1のクライアント装置の決定部は、
    前記書き込み要求を前記サーバ装置に送信するときに、前記第2の記憶部に記憶されている前記書き込みバージョンに所定の値を加算することにより、送信する前記書き込み要求の前記書き込みバージョンを決定し、
    前記第2のクライアント装置の決定部は、
    前記第1のクライアント装置から前記第2のクライアント装置に切り替わるときに、前記サーバ装置のデータを変更する場合、変更するデータの前記バージョンを読み出し、読み出した前記バージョンに、前記所定の値よりも大きい値を加算することにより、前記変更するデータの前記書き込みバージョンを決定する
    報処理システム。
  2. サーバ装置と、複数のクライアント装置とを備える情報処理システムであって、
    前記サーバ装置は、
    データと、前記データを記憶する場所を識別する第1識別情報と、前記データのバージョンとを関連付けて記憶する記憶部と、
    前記記憶部に書き込むデータを示す書き込みデータと、前記書き込みデータを記憶する場所を識別する第2識別情報と、前記書き込みデータのバージョンを示す書き込みバージョンとを含む書き込み要求を前記クライアント装置から受信する受信部と、
    前記第2識別情報と一致する前記第1識別情報に関連付けられた前記データのバージョンが、前記書き込みバージョンより小さい場合、前記第1識別情報に関連付けられたデータとバージョンとを、前記書き込みデータと前記書き込みバージョンとにそれぞれ書き換える記憶制御部と、
    を備え、
    前記クライアント装置は、
    前記書き込み要求を前記サーバ装置に送信する送信部
    前記サーバ装置に書き込むデータの合意を前記複数のクライアント装置の間でとる場合、前記合意をとるデータと、前記複数のクライアント装置で同じ前記書き込みバージョンと、前記複数のクライアント装置で同じ前記第2識別情報とを含む書き込み要求である合意書き込み要求を前記サーバ装置に送信した後に、前記合意書き込み要求に含まれる前記第2識別情報を含む読み出し要求を前記サーバ装置に送信し、読み出された前記データにより前記サーバ装置に書き込むデータの合意をとる合意部と、
    を備える情報処理システム。
  3. 前記記憶制御部は、
    前記第2識別情報と一致する前記第1識別情報に関連付けられた前記データのバージョンが、前記書き込みバージョンより大きい場合、前記第1識別情報に関連付けられたデータを前記書き込みデータに書き換えることができないことを示すエラー情報を、前記クライアント装置に送信する
    請求項1又は2に記載の情報処理システム。
  4. 前記記憶制御部は、
    前記第2識別情報と一致する前記第1識別情報に関連付けられた前記データのバージョンが、前記書き込みバージョンと一致し、かつ、前記第2識別情報と一致する前記第1識別情報に関連付けられた前記データと、前記書き込みデータとが一致しない場合、前記第1識別情報に関連付けられたデータを前記書き込みデータに書き換えることができないことを示すエラー情報を、前記クライアント装置に送信する
    請求項1乃至3のいずれか1項に記載の情報処理システム。
  5. 前記クライアント装置は、
    前記書き込み要求を送信する前に、前記書き込み要求に含まれる前記第2識別情報と一致する前記第1識別情報に関連付けられた前記データのバージョンを読み出し、読み出した前記バージョンに所定の値を加算することにより前記書き込みバージョンを決定する決定部を更に備える
    請求項に記載の情報処理システム。
  6. 記複数のクライアント装置の前記決定部が加算する前記所定の値は、互いに素な整数である
    請求項5に記載の情報処理システム。
  7. サーバ装置と、現用系のシステムである第1のクライアント装置と、待機系のシステムである第2のクライアント装置とを備える情報処理システムの情報処理方法であって、
    前記サーバ装置は、データと、前記データを記憶する場所を識別する第1識別情報と、前記データのバージョンとを関連付けて記憶する第1の記憶部を備え、
    前記第1及び第2のクライアント装置は、前記第1の記憶部に書き込むデータを示す書き込みデータを記憶する場所を識別する第2識別情報毎に決定された書き込みバージョンを記憶する第2の記憶部を備え、
    サーバ装置が、前記書き込みデータと、前記第2識別情報と、前記書き込みデータのバージョンを示す書き込みバージョンとを含む書き込み要求を前記第1及び第2のクライアント装置から受信するステップと、
    サーバ装置が、前記第2識別情報と一致する前記第1識別情報に関連付けられた前記データのバージョンが、前記書き込みバージョンより小さい場合、前記第1識別情報に関連付けられたデータとバージョンとを、前記書き込みデータと前記書き込みバージョンとにそれぞれ書き換えるステップと、
    第1及び第2のクライアント装置が、前記書き込み要求を前記サーバ装置に送信するステップと、
    第1のクライアント装置が、前記書き込み要求を前記サーバ装置に送信するときに、前記第2の記憶部に記憶されている前記書き込みバージョンに所定の値を加算することにより、送信する前記書き込み要求の前記書き込みバージョンを決定するステップと、
    第2のクライアント装置が、前記第1のクライアント装置から前記第2のクライアント装置に切り替わるときに、前記サーバ装置のデータを変更する場合、変更するデータの前記バージョンを読み出し、読み出した前記バージョンに、前記所定の値よりも大きい値を加算することにより、前記変更するデータの前記書き込みバージョンを決定するステップと、
    を含む情報処理方法。
  8. サーバ装置と、複数のクライアント装置とを備える情報処理システムの情報処理方法であって、
    前記サーバ装置は、データと、前記データを記憶する場所を識別する第1識別情報と、前記データのバージョンとを関連付けて記憶する記憶部を備え、
    サーバ装置が、前記記憶部に書き込むデータを示す書き込みデータと、前記書き込みデータを記憶する場所を識別する第2識別情報と、前記書き込みデータのバージョンを示す書き込みバージョンとを含む書き込み要求を前記クライアント装置から受信するステップと、
    サーバ装置が、前記第2識別情報と一致する前記第1識別情報に関連付けられた前記データのバージョンが、前記書き込みバージョンより小さい場合、前記第1識別情報に関連付けられたデータとバージョンとを、前記書き込みデータと前記書き込みバージョンとにそれぞれ書き換えるステップと、
    クライアント装置が、前記書き込み要求を前記サーバ装置に送信するステップと、
    クライアント装置が、前記サーバ装置に書き込むデータの合意を前記複数のクライアント装置の間でとる場合、前記合意をとるデータと、前記複数のクライアント装置で同じ前記書き込みバージョンと、前記複数のクライアント装置で同じ前記第2識別情報とを含む書き込み要求である合意書き込み要求を前記サーバ装置に送信した後に、前記合意書き込み要求に含まれる前記第2識別情報を含む読み出し要求を前記サーバ装置に送信し、読み出された前記データにより前記サーバ装置に書き込むデータの合意をとるステップと、
    を含む情報処理方法。
  9. 現用系のシステムである第1のクライアント装置と、待機系のシステムである第2のクライアント装置と接続され、データと、前記データを記憶する場所を識別する第1識別情報と、前記データのバージョンとを関連付けて記憶する第1の記憶部を備えるサーバ装置を、
    前記第1の記憶部に書き込むデータを示す書き込みデータと、前記書き込みデータを記憶する場所を識別する第2識別情報と、前記書き込みデータのバージョンを示す書き込みバージョンとを含む書き込み要求を前記第1及び第2のクライアント装置から受信する受信部と、
    前記第2識別情報と一致する前記第1識別情報に関連付けられた前記データのバージョンが、前記書き込みバージョンより小さい場合、前記第1識別情報に関連付けられたデータとバージョンとを、前記書き込みデータと前記書き込みバージョンとにそれぞれ書き換える記憶制御部
    として機能させ、
    前記第2識別情報毎に決定された書き込みバージョンを記憶する第2の記憶部を備える前記第1のクライアント装置を、
    前記書き込み要求を前記サーバ装置に送信する送信部と、
    前記書き込み要求を前記サーバ装置に送信するときに、前記第2の記憶部に記憶されている前記書き込みバージョンに所定の値を加算することにより、送信する前記書き込み要求の前記書き込みバージョンを決定する決定部
    として機能させ、
    前記第2のクライアント装置を、
    前記書き込み要求を前記サーバ装置に送信する送信部と、
    前記第1のクライアント装置から前記第2のクライアント装置に切り替わるときに、前記サーバ装置のデータを変更する場合、変更するデータの前記バージョンを読み出し、読み出した前記バージョンに、前記所定の値よりも大きい値を加算することにより、前記変更するデータの前記書き込みバージョンを決定する決定部
    として機能させるためのプログラム。
  10. 複数のクライアント装置と接続され、データと、前記データを記憶する場所を識別する第1識別情報と、前記データのバージョンとを関連付けて記憶する記憶部を備えるサーバ装置を、
    前記記憶部に書き込むデータを示す書き込みデータと、前記書き込みデータを記憶する場所を識別する第2識別情報と、前記書き込みデータのバージョンを示す書き込みバージョンとを含む書き込み要求を前記クライアント装置から受信する受信部と、
    前記第2識別情報と一致する前記第1識別情報に関連付けられた前記データのバージョンが、前記書き込みバージョンより小さい場合、前記第1識別情報に関連付けられたデータとバージョンとを、前記書き込みデータと前記書き込みバージョンとにそれぞれ書き換える記憶制御部
    として機能させ、
    前記クライアント装置を、
    前記書き込み要求を前記サーバ装置に送信する送信部と、
    前記サーバ装置に書き込むデータの合意を前記複数のクライアント装置の間でとる場合、前記合意をとるデータと、前記複数のクライアント装置で同じ前記書き込みバージョンと、前記複数のクライアント装置で同じ前記第2識別情報とを含む書き込み要求である合意書き込み要求を前記サーバ装置に送信した後に、前記合意書き込み要求に含まれる前記第2識別情報を含む読み出し要求を前記サーバ装置に送信し、読み出された前記データにより前記サーバ装置に書き込むデータの合意をとる合意部
    として機能させるためのプログラム。
JP2015535188A 2013-09-03 2013-09-03 情報処理システム、情報処理方法及びプログラム Active JP6151365B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/073699 WO2015033388A1 (ja) 2013-09-03 2013-09-03 情報処理システム、サーバ装置、情報処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2015033388A1 JPWO2015033388A1 (ja) 2017-03-02
JP6151365B2 true JP6151365B2 (ja) 2017-06-21

Family

ID=52627898

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015535188A Active JP6151365B2 (ja) 2013-09-03 2013-09-03 情報処理システム、情報処理方法及びプログラム

Country Status (3)

Country Link
US (1) US10514850B2 (ja)
JP (1) JP6151365B2 (ja)
WO (1) WO2015033388A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11120002B2 (en) * 2016-07-20 2021-09-14 Verizon Media Inc. Method and system for concurrent database operation
CN114594914B (zh) * 2022-03-17 2024-04-02 阿里巴巴(中国)有限公司 用于分布式存储系统的控制方法及系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68924061T2 (de) * 1989-05-12 1996-04-18 Ibm Versionskontrolle in einem Datenverarbeitungssystem.
JPH09190393A (ja) 1996-01-10 1997-07-22 Canon Inc 情報処理方法とその装置と情報処理システム
JP3487732B2 (ja) * 1997-06-16 2004-01-19 Necソフト株式会社 複製データベースデータ不整合回避装置及び回避方法
JP2000284998A (ja) * 1999-03-31 2000-10-13 Ricoh Co Ltd データ更新制御システム、データ更新制御方法、その方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2003242016A (ja) * 2002-02-14 2003-08-29 Nippon Telegr & Teleph Corp <Ntt> 情報処理システムおよびその情報システムで使用されるサーバ装置ならびにクライアント装置と、プログラムおよび情報処理方法
JP2004013867A (ja) * 2002-06-12 2004-01-15 Nec Corp 複製データベースシステム、データベース装置及びそれに用いるデータベース更新方法並びにそのプログラム
US8332370B2 (en) * 2006-05-09 2012-12-11 Hewlett-Packard Development Company, L.P. Maintaining commonly named client-specific file content in hard disk drive emulation
US8229902B2 (en) * 2006-11-01 2012-07-24 Ab Initio Technology Llc Managing storage of individually accessible data units
JP5309703B2 (ja) 2008-03-07 2013-10-09 日本電気株式会社 共有メモリの制御回路、制御方法及び制御プログラム
US8090681B2 (en) * 2008-06-26 2012-01-03 Microsoft Corporation Resolving conflicts in content management systems
US9317536B2 (en) * 2010-04-27 2016-04-19 Cornell University System and methods for mapping and searching objects in multidimensional space
US8396894B2 (en) * 2010-11-05 2013-03-12 Apple Inc. Integrated repository of structured and unstructured data
US8788579B2 (en) * 2011-09-09 2014-07-22 Microsoft Corporation Clustered client failover

Also Published As

Publication number Publication date
WO2015033388A1 (ja) 2015-03-12
US20160179408A1 (en) 2016-06-23
JPWO2015033388A1 (ja) 2017-03-02
US10514850B2 (en) 2019-12-24

Similar Documents

Publication Publication Date Title
JP6273927B2 (ja) 情報処理システム,監視装置,監視プログラム,監視方法
JP6556851B2 (ja) データベースシステム、サーバ装置、プログラムおよび情報処理方法
US20150213100A1 (en) Data synchronization method and system
US10802847B1 (en) System and method for reproducing and resolving application errors
US8825968B2 (en) Information processing apparatus and storage control method
CN106899648A (zh) 一种数据处理方法和设备
US11262883B2 (en) Associating browser with application
EP3533200B1 (en) Fault tolerant automatic secret rotation
JP6028641B2 (ja) 情報処理システム、情報処理装置の制御プログラム及び情報処理システムの制御方法
CN107479823B (zh) 随机读写文件测试中的数据校验方法和装置
US11500812B2 (en) Intermediate file processing method, client, server, and system
JP6151365B2 (ja) 情報処理システム、情報処理方法及びプログラム
US10481833B2 (en) Transferring data encoding functions in a distributed storage network
CN107528703B (zh) 一种用于管理分布式系统中节点设备的方法与设备
JP4116064B1 (ja) クライアント装置
JP2012027727A (ja) 記憶装置、ストレージシステム及び制御方法
JP5652333B2 (ja) 記憶装置、ストレージシステム及び記憶装置制御方法
AU2020289352B2 (en) Techniques for file versioning to protect against file corruption
EP1962476A2 (en) Computer and control method thereof
JP2008257410A (ja) システム設計検証装置
JP2004013867A (ja) 複製データベースシステム、データベース装置及びそれに用いるデータベース更新方法並びにそのプログラム
CN114731326B (zh) 区块链系统、程序及网络连接装置
US20170068570A1 (en) System for managing asset manager lifetimes
JP6101500B2 (ja) 情報管理装置、情報管理方法、情報管理プログラム
US20240045777A1 (en) Processing of Data Access Requests in a Storage Network

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170406

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170425

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170524

R150 Certificate of patent or registration of utility model

Ref document number: 6151365

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350