JP6697101B2 - 情報処理システム - Google Patents

情報処理システム Download PDF

Info

Publication number
JP6697101B2
JP6697101B2 JP2018562736A JP2018562736A JP6697101B2 JP 6697101 B2 JP6697101 B2 JP 6697101B2 JP 2018562736 A JP2018562736 A JP 2018562736A JP 2018562736 A JP2018562736 A JP 2018562736A JP 6697101 B2 JP6697101 B2 JP 6697101B2
Authority
JP
Japan
Prior art keywords
value
identifier
sequence
data store
queue
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
JP2018562736A
Other languages
English (en)
Other versions
JP2019509579A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JP2019509579A publication Critical patent/JP2019509579A/ja
Application granted granted Critical
Publication of JP6697101B2 publication Critical patent/JP6697101B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Description

長距離データ同期は、災害(例えば、地震)の場合のフェイルオーバーのために及び他の目的のために活用される。低遅延データストア(例えば、インメモリKVS)は、ミッションクリティカルな業務システムで求められる高速応答を提供するために活用される。低遅延データストア用の長距離データ同期の場合、システム全体が2つのシステムを含むように構成される。一方は、少なくとも1つのローカルクライアントのために動くローカルシステムであり、他方は、少なくとも1つのリモートクライアントのために働くリモートシステムである。
米国第2013/0117223 A1号は、第1のストレージシステムから第3のストレージシステムを含む情報処理システムを開示する。第1のストレージシステムは、第2のストレージ装置内でファイルのエンティティデータを管理することによるスタブ化、第2のストレージ装置にファイルのデータを複製することによる移行、及び第2のストレージ装置10bから第1のストレージ装置にファイルのエンティティデータを書き戻すことにより再実行する。さらに、第1のストレージ装置から第3のストレージ装置に移動されたファイルのメタデータを移行のタイミングで(同期して)複製し、移行のタイミングとは関係ないタイミングで(非同期で)ファイルのエンティティデータを第3のストレージ装置に複製することによってリモートコピーを実行する。
米国特許第2013/0117223 A1号
災害の場合に、フェイルオーバーは、ローカルシステムからリモートシステムへ発生する。米国第2013/0117223A1号は、最初にメタデータをリモートシステムに複製することによってリモートコピーを実行するようにローカルシステムを構成する。リモートクライアントは、ローカルシステムによってもたらされるデータを処理しようとするとき、リモートシステムはカレントデータのハッシュ値をチェックする。書込み頻度の高いアプリケーションでは、ネットワークパケットがリモートサイトに順序から崩れて到着する場合、リモートシステムはハッシュ値を計算するだけでは正しい順序を理解できず、不一致を引き起こす可能性がある。
代表的な例は、第1のシステム及び第2のシステムを含む情報処理システムであって、第1のシステムは、1つ以上のクライアントから値を値の識別子とともに受信するように構成され、第1のシステムは、第1のデータストアの中に連続して値を入力するように構成され、第1のシステムは値のそれぞれを、第1のデータストアへの値の入力シーケンスでの位置を示すシーケンスIDと関連付けるように構成され、第1のシステムは、第1の値の第1の識別子及び第1の値と関連付けられた第1のシーケンスIDを第2のシステムに送信するように構成され、第1のシステムは、第1の識別子及び第1のシーケンスIDを送信後に、第1のシーケンスID及び第1の値を第2のシステムに送信するように構成され、第2のシステムは、第1のシステムから送信された第1の識別子及び第1のシーケンスIDを第1の待ち行列に保持するように構成され、第2のシステムは、第1のシステムから第2のデータストアに第1の識別子の後に受信された第1の値を入力するように構成される。
代表的な例は、情報処理システムがリモートデータストア間でのデータ不一致を妨げることを可能にする。
図1は、長距離同期に関与する情報処理システムの全体的な構成を示す図である。 図2は、ローカルクライアント及びリモートクライアントのハードウェア構成例を示す図である。 図3は、ローカルサーバ装置及びリモートサーバ装置のハードウェア構成例を示す図である。 図4Aは、それぞれローカルサーバ及びリモートサーバに記憶されるキー待ち行列の例示的なフォーマットを示す図である。 図4Bは、それぞれローカルサーバ及びリモートサーバに記憶される値待ち行列の例示的なフォーマットを示す図である。 図4Cは、それぞれローカルサーバ及びリモートサーバに記憶されるメインデータストアの例示的なフォーマットを示す図である。 図5は、それぞれローカルサーバ及びリモートサーバに記憶される複製ログテーブルの例示的なフォーマットを示す図である。 図6は、ローカルサーバとリモートサーバとの間で伝送される例示的な複製データを示す図である。 図7は、アプリケーション1からローカルサーバへの書込み要求を処理するためのフローチャートを示す図である。 図8は、災害に起因するローカルサーバでの故障の場合にアプリケーションからの読取り要求を処理するフローチャートを示す図である。 図9は、複製マネージャが、災害のために複製データをリモートサーバに送信できない場合のローカルサーバによる処理のフローチャートを示す図である。 図10は、回復後のローカルサーバとリモートサーバとの間での再同期、及びローカルサーバでの動作の再開のフローチャートを示す図である。 図11は、ステップS1006及びS1010で活用される収集動作のフローチャートを示す図である。 図12は、回復のための複製データの例示的なフォーマットを示す図である。 図13は、ステップS1009及びS1013で活用される回復動作のフローチャートを示す図である。 図14は、災害によるローカルサーバで故障の場合に値及びシーケンスIDに加えてキーを含む値−シーケンスIDパケットを使用し、アプリケーションからの読取り要求を処理するフローチャートを示す図である。
以下、実施形態は、添付図面を参照して説明される。実施形態が、本発明を実施するための単に例にすぎず、本発明の技術的な範囲を制限するべきではないことに留意されたい。図面を通して、共通の要素は、同じ参照符号によって示される。
実施形態は、長距離に亘ってデータ同期を実行するための方法に関し、特に低遅延分散データストア用の長距離複製に関する。整合性の担保に加えて、低遅延データストアにおける長距離複製方法は、高速応答性能を維持しながら複製を実行するためにも必要とされる。実施形態は、長距離データ複製を可能にし、予測不可能なネットワーク状態でも整合性と高速応答性能の両方を維持できる技法を提供する。
値(データ)の識別子及び関連付けられたシーケンスIDは、ローカルシステムからリモートシステムに同期送信される。識別子及び値の対の例は、Key-Valueデータストアのキー−値ペアである。値及び識別子の別のタイプが活用されてもよい。例えば、ファイル(値)及びファイル名(識別子)が使用されてよい。
値及びシーケンスIDは、識別子及び同じシーケンスIDのローカルシステムからリモートシステムへの事前の送信とは関係のないときに非同期送信される。リモートシステムは、シーケンスID及び識別子を待ち行列に保持している。リモートシステムは、値とともに送信されたシーケンスIDを求めて待ち行列を検索し、シーケンスID及び関連付けられた識別子が待ち行列内で見つけられると、メインデータストアの中に値を入力する。
フェイルオーバーがローカルシステムからリモートシステムへ発生するとき、リモートシステムは、リモートクライアントから識別子とともに要求を受信し、識別子を求めて待ち行列を検索する。一致する識別子が待ち行列内で見つけられ、識別子と同じシーケンスIDと関連付けられた値がローカルシステムから受信されない場合、エラーが検出され、エラーメッセージが発行される。具体的には、リモートシステムは、データ整合性を保護するためにエラーメッセージを作成し、リモートクライアントに返す。
上述されたように、実施形態は、リモート複製のための値の前に識別子を送信し、リモート複製で低遅延動作(迅速な応答性能)を可能にする。実施形態は、複製ステータスをチェックするためにリモート複製中にシーケンスIDを使用し、データ整合性の保護を可能にする。
以後、実施形態は、図面を参照してより詳細に説明される。図1は、長距離同期に関与する情報処理システムの全体的な構成を示す。情報処理システムの例は、チケット用の予約システムである。情報処理システムは、ローカルクライアント装置101、ローカルサーバ装置102、リモートクライアント装置201、及びリモートサーバ装置201を含む。
ローカルクライアント装置101は、ローカルサイトネットワーク11を通してローカルサーバ装置102と接続される。リモートクライアント装置201は、リモートサイトネットワーク22を通してリモートサーバ装置202と接続される。ローカルサーバ装置102は、サイト間ネットワーク33を通してリモートサーバ装置202と接続される。例えば、ローカルサイトネットワーク11、リモートサイトネットワーク22、及びサイト間ネットワーク33は、(銅チャネル及びファイバチャネル等の)複数の有線接続、及び/又は(セルラー及びWLAN等の)無線接続を活用してよい。
アプリケーション(プログラム)1は、ユーザ端末(不図示)で実行する。アプリケーションは、ローカルクライアント装置101で、及びローカルクライアント装置201で実行してよい。アプリケーションを実行する1つのローカルクライアント装置は、ローカルサーバ装置102とリモートサーバ装置202の両方と接続されてよい。
アプリケーション1は、それぞれ読取り(GET)要求及び書込み(PUT)要求を、ローカルクライアント装置101を通して送信することによってローカルサーバ装置102からデータを読み取り、ローカルサーバ装置102にデータを書き込む。アプリケーション1は、それぞれ読取り(GET)要求及び書込み(PUT)要求を、リモートクライアント201を通して送信することによってリモートサーバ装置202からデータを読み取り、リモートサーバ装置202にデータを書き込む。
例えば、アプリケーション1は、読み取られる又は書き込まれるデータに基づいて要求宛先サーバを選択する。キー−値対は、単一のサイト(サーバ装置)においてのみアクセスされ、キー−値ペアは、両方の場所で同時にアクセスされることはない。上述されたように、災害に続くフェイルオーバー又は回復動作が完了しない場合、キー−値ペアのアクセス場所は変更しない。
ローカルクライアント装置101は、要求マネージャ(プログラム)1022を含む。リモートクライアント装置201は、要求マネージャ(プログラム)2012を含む。要求マネージャ1012は、アプリケーション1から受信された要求をローカルサーバ装置102に転送する。要求マネージャ2012は、アプリケーション1から受信された要求をローカルサーバ装置202に転送する。
ローカルサーバ装置102は、制御プログラムグループ1021及び管理テーブルグループ1026を含む。制御プログラムグループ1021は、制御プログラムを含む。具体的には、制御プログラムグループ1021は、要求マネージャ1022、複製送信機1023、複製受信機1024、及び複製マネージャ1025を含む。
管理テーブルグループ1026は管理テーブルを含む。具体的には、管理テーブルグループ1026は、メインデータストア1027、キー待ち行列1028、値待ち行列1029、及び複製ログテーブル1030を含む。
要求マネージャ1022は、ローカルクライアント装置101からの要求に応えて、メインデータストア1027からデータを読み取る、又はメインデータストア1027にデータを書き込む。複製送信機1033は、リモートサーバ装置202に複製データを送信する。複製受信機1024は、リモートサーバ装置202から複製データを受信する。
複製マネージャ1025は、キー待ち行列1028及び値待ち行列1029を観察することによってリモートサーバ装置202からの複製を管理し、一致するキー−値対をメインデータストア1027に入力する。
メインデータストア1027は、キー及びその対応する値(キー−値ペア)を含む。キーは、対応する値及びキー−値ペア(テーブル内のレコード)を指す、メインデータストア1027内の一意の識別子である。値は、アプリケーション1によって活用されるバイトの文字列である。
キー待ち行列1028は、リモートサーバ装置202からのキー及びシーケンスIDの対を記憶するためのテーブル構造を有する待ち行列である。各対は、シーケンスID及びシーケンスIDと関連付けられたキーから成る。
値待ち行列1029は、リモートサーバ装置202からのシーケンスID及び値の対を記憶するためのテーブル構造を有する待ち行列である。各対は、シーケンスID及びシーケンスIDと関連付けられた値から成る。後述されるように、シーケンスIDはキー−値対に割り当てられ、シーケンスIDは、キー及びキー−値対の値と関連付けられる。
ローカルサーバ装置202は、制御プログラムグループ2021及び管理テーブルグループ2026を含む。制御プログラムグループ2021は、制御プログラムを含む。具体的には、制御プログラムグループ2021は、要求マネージャ2022、複製送信機2023、複製受信機2024、及び複製マネージャ2025を含む。
管理テーブルグループ2026は、管理テーブルを含む。具体的には、管理テーブルグループ2026は、メインデータストア2027、キー待ち行列2028、値待ち行列2029、及び複製ログテーブル2030を含む。
要求マネージャ2022は、リモートクライアント201からの要求に応えて、メインデータストア2027からデータを読み取る、又はメインデータストア2027にデータを書き込む。複製送信機2023は、ローカルサーバ装置102に複製データを送信する。複製受信機2024は、ローカルサーバ装置102から複製データを受信する。
複製マネージャ2025は、キー待ち行列2028及び値待ち行列2029を観察することによってローカルサーバ装置102から複製を管理し、メインデータストア2027に一致するキー−値ペアを入力する。
メインデータストア2027は、メインデータストア1027と複製ペアを構成する。メインデータストア2027は、キー及びその対応する値(キー−値ペア)を含む。キーは、値及びキー−値ペア(テーブル内のレコード)を指す、メインデータストア2027内の一意の識別子である。値は、アプリケーションによって活用されるバイトの文字列である。
キー待ち行列2028は、ローカルサーバ装置102からのキー及びシーケンスIDのペアを記憶するためのテーブル構造を有する待ち行列である。各対は、シーケンスID及びシーケンスIDと関連付けられたキーから成る。
値待ち行列2029は、ローカルサーバ装置102からのシーケンスID及び値の対を記憶するためのテーブル構造を有する待ち行列である。各対は、シーケンスID及びシーケンスIDと関連付けられた値から成る。シーケンスIDは、キー−値ペアに割り当てられ、シーケンスIDは、キー−値ペアのキー及び値と関連付けられる。
キー待ち行列は、キー及びシーケンスIDを一時的に保持するために使用される記憶領域である。値待ち行列は、値及びシーケンスIDを一時的に保持するために使用される記憶領域である。レコードの追加の順序は、レコードの削除の順序と同じではない場合がある。
key-valueストアは、メインデータストアの典型的な記憶タイプである。キー−値ストアは、簡略な構成を用いて高スケーラビリティ、高可用性、及び高速応答性能を達成する。
図2は、ローカルクライアント措置101及びリモートクライアント201のハードウェア構成例である。クライアント装置2000は、プロセッサ2001、メインメモリデバイス2002、(ハードディスクドライブ及びソリッドステートドライブ等の)永続ストレージ2023、(LANアダプタ及びファイバチャネルアダプタ等の)ネットワークインタフェース2004、(キーボード及びマウス等の)入力装置2005、並びに(モニタ及びプリンタ等の)出力装置2006を含む。クライアント装置2000は、(ファイルシステム、カーネル、及びドライバを含む)オペレーティングシステム及び要求マネージャを実行する。
図3は、ローカルサーバ装置102及びリモートサーバ装置202のハードウェア構成例を示す。サーバ装置3000は、プロセッサ3001、メインメモリデバイス3002、(ハードディスクドライブ及びソリッドステートドライブ等の)永続ストレージ3003、(LANアダプタ及びファイバチャネルアダプタ等の)ネットワークインタフェース3004、(キーボード及びマウス等の)入力装置3005、並びに(モニタ及びプリンタ等の)出力装置3006を含む。
サーバ装置3000は、(ファイルシステム、カーネル、及びドライバを含む)オペレーティングシステム、並びに(要求マネージャ、複製送信機、複製受信機、及び複製マネージャを含む)制御プログラムグループを実行する。
サーバ装置3000は、メインメモリデバイス3002及び永続ストレージ3003に管理テーブルグループを記憶する。例では、複製ログテーブル以外のテーブルは、メインメモリデバイス3002にしか記憶されず、複製ログテーブルは永続ストレージ3003にしか記憶されない。複製ログテーブルは、メインメモリデバイス3002のキャッシュに格納されてよい。すべてのテーブルは、永続ストレージ3003に記憶されてよく、メインメモリデバイス3002のキャッシュに格納されてよい。
プロセッサ3001は、他のデバイスとの連携によりメモリ2002に記憶されたプログラムに従って動作することによって特定の機能部分の機能を果たす。したがって、本開示でプログラムの主題を有する説明は、プロセッサ又はプロセッサを有する装置の主題を有する説明により置き換えられてよい。通常、プログラム及びデータは、永続ストレージ3003からロードされる、又はネットワークインタフェース3004を通して外部装置からメモリ3002にダウンロードされる。同じことは、クライアント装置2000に適用される。
図4Aは、それぞれローカルサーバ装置102及びリモートサーバ装置202に記憶されたキー待ち行列1028及び2028の例示的なフォーマットを示す。キー待ち行列1028/2028(キー待ち行列1028及び2028のそれぞれ)は、シーケンスID及び対応する一意のキーを含む。上述されたように、キー待ち行列1028/2028は、他のサーバから対応するシーケンスIDとともに送信されたキーを記憶する。
シーケンスIDは、要求マネージャによるメインデータストアへの入力の順序を示す。例えば、シーケンスIDは、データ(キー−値ペア)がメインデータストアに記憶される、又はデータがアプリケーションから受信された時刻を示す。シーケンスIDは、入力がメインデータストア1027/2027内に登録される場所を示す場合がある。
シーケンスIDは、ローカルサーバ装置102及びリモートサーバ装置202の両方でのキー−値ペアの順序を決定できる任意のタイプの数値を活用してよい。シーケンスIDは、メインデータストア1027/2027での新しいキー−値ペア入力の際に、要求マネージャ1022/2022からの要求に基づいて同期を取る目的のために複製マネージャ1025/2025によって作成されてよい。
例えば、リモートサーバ装置202のキー待ち行列2028内のシーケンスIDは、対応する値がキーであり、キー(キー−値ペア)が、ローカルサーバ装置102で20:00にメインデータストア1027に入力される(又は、アプリケーション1から受信される)ことを示す。待ち行列410では、複数の動作を単一のキーで実行できるため、複数のシーケンスIDが同じキーを指す場合がある。
図4Bは、それぞれローカルサーバ装置102及びリモートサーバ装置202に記憶された値待ち行列1029及び2029の例示的なフォーマットを示す。値待ち行列1029/2029は、シーケンスID及び対応する値(キー−値対の値部分)を含む。上述されたように、値待ち行列1029/2029は、他のサーバから対応するシーケンスIDとともに送信された値を記憶する。値待ち行列1029/2029では、単一のシーケンスIDは、単一の値と関連付けられてよい。同じシーケンスIDと関連付けられたキー及び値は、キー−値対を構成する。
図4Cは、それぞれローカルサーバ装置102及びリモートサーバ装置202内のメインデータストア1027及び2027の例示的なフォーマットを示す。メインデータストア1027/2027は、いわゆるkey-valueストアであり、ペアになるキー及び対応する値を含む。すなわち、メインデータストア1027/2027は、アプリケーション及び他のサーバから送信されたキー−値ペアを記憶する。メインデータストア1027/2027では、キーは一意であり、非同期的に単一値と関連付けられる。メインデータストア1027/2027は、キー−値ストアとは異なる別のデータストア構造を有してもよい。
図5は、それぞれローカルサーバ装置102及びリモートサーバ装置202に記憶された複製ログテーブル1030及び2030の例示的なフォーマットを示す。複製ログテーブル1030/2030は、同じサーバ内のメインデータストア1027/2027のキー−値ペアの更新履歴(ログ)及び複製ステータスの情報を含む。複製マネージャ1025/2025は、クライアント装置101/201からの要求に応えて複製ログテーブル100/2030にレコードを書き込み、メインデータストア1027/2027内の変更を追跡するためにテーブル1030/2030の複製ログテーブルを保持する。
複製ログテーブル1030/2030では、各レコードは、互いに関連してシーケンスID、キー、前値、新しい値、及び複製終了ステータスを含むように構成される。
各レコードは、クライアント装置からの要求に関連してメインデータストア内でのキー−値対の更新(修正)の1つの時刻を示す。各レコードは、シーケンスIDによって識別されたPUT動作の1つの時刻に対応する。
レコード内の前値は、PUT(書込み)動作による修正前の値である。レコード内の新しい値は、PUT動作による修正後の値である。複製終了ステータスは、動作が正しく他のサーバ装置に複製されたかどうかを示す。
図6は、ローカルサーバ装置102とリモートサーバ装置202との間で送信される例示的な複製データを示す。パケット601は、キー及び対応する(割り当てられた)シーケンスIDを送信するためのキー−シーケンスIDパケットである。キー及びシーケンスIDは、受信機サーバ装置102/202でキー待ち行列1028/2028に記憶される。
パケット602は、値(キー−値対の値部分)及び対応する(割り当てられた)シーケンスIDを送信するための値−シーケンスIDパケットである。値及びシーケンスIDは、受信機サーバ装置102/202で値待ち行列1029/2029に記憶される。パケット601及び602は、ターゲット場所に到達するために必要なネットワーキングヘッダ情報を含む。
図7は、アプリケーション1からローカルサーバ装置102へのPUT(書込み)要求を処理するためのフローチャートを示す。ローカルサーバ装置201及びリモートサーバ装置202は、正常に動作している。書込み動作は、ローカルクライアント装置101内の要求マネージャ1012からローカルサーバ装置102への新しいキー−値対を有するPUT要求で開始する(S701)。ローカルサーバ装置102内の要求マネージャ1022は、PUT要求を受信する(S702)。
要求マネージャ1022は、メインデータストア1027から受信されたキーと関連付けられた修正前の前値を得る(S703)。具体的には、要求マネージャ1022は、受信されたキーを求めてメインデータストア1027を検索し、メインデータストア1027からキーとペアになっている値を取り出す。キーがメインデータストア107に記憶されないとき、前のデータはNULLである。
要求マネージャ1022は、受信したキー−値ペアをメインデータストア1027に入力する(S704)。具体的には、要求マネージャ1022は、キーとペアにされた前値を、受信した新しい値に修正する。メインデータストア1027での値の修正は、値の状態に応じて禁止される場合があることに留意されたい。
要求マネージャ1022は、ローカルクライアント装置101にPUT要求結果を返す(S705)。ローカルクライアント装置101内の要求マネージャ1012は、ローカルサーバ装置102から応答を受信し、動作を終了する(S706)。
一方、ローカルサーバ装置102内の要求マネージャ1022は、シーケンスID、キー、前値、新しい値、及び「FALSE」の複製終了ステータスのレコードを複製ログテーブル1030に追加し、複製マネージャ1025に新しいキー−値ペアの入力を通知する(S707)。
複製マネージャ1025は、例えば要求マネージャ1022が新しい入力の通知を出した後にキー−値ペアのメインデータストア1027への入力時刻からシーケンスIDを作成する。複製マネージャ1025は、例えばローカルクライアント102からの受信時刻からシーケンスIDを作成してよい。
ローカルサーバ装置102内の複製マネージャ1025は、受信されたキー及び対応するシーケンスIDをリモートサーバ装置202に送信する(S708)。複製マネージャ1025は、キー及びシーケンスIDを含むキー−シーケンスIDパケット601を、リモートサーバ装置202内の複製受信機2024に送信するために複製送信機1023を使用する。
リモートサーバ装置202内の受信機2024は、キー−シーケンスIDパケット601を受信する(S709)。複製マネージャ2025は、受信されたパケット601のキー及びシーケンスIDをキー待ち行列2028に入力する(S710)。複製マネージャ2025は、ローカルサーバ装置102内の複製受信機1024に応答を返送するためにリモートサーバ装置202内の複製送信機2023を使用する(S711)。
複製受信機1024は、リモートサーバ装置202から応答を受信する(S712)。複製マネージャ1025は、シーケンスID及び値を含む値−シーケンスIDパケット602をリモートサーバ装置202に送信するために複製送信機1023を使用する(S713)。
複製受信機2024は、値−シーケンスIDパケット602を受信する(S714)。複製マネージャ2025は、値−シーケンスIDパケット602内の受信されたシーケンスID及び値を値待ち行列2029に入力する(S715)。
複製マネージャ2025は、値待ち行列2029に記憶されたシーケンスIDを求めてキー待ち行列2028を検索する(S715)。複製マネージャ2025は、キー待ち行列2028から一致するシーケンスIDと関連付けられたキーを取り出す(S716)。複製マネージャ2025は、リモートサーバ装置202内のメインデータストア2027の中にキー−値ペアを入力する(S717)。複製マネージャ2025は、キー待ち行列2028からキー及びシーケンスIDを、値待ち行列2029から値及びシーケンスIDを削除する。
例では、複製マネージャ2025は、キー−値対をシーケンスIDの順序でメインデータストア2027の中に入力する。値待ち行列2029が複数のレコードを含むとき、複製マネージャ2025は、キーを求めてキー待ち行列2028を検索するために値待ち行列2029から最も古いシーケンス番号を有するレコードを選択する。
複製マネージャ2025は、ローカルサーバ装置102に応答を送信するために複製送信機2023を使用する(S718)。ローカルサーバ装置102内の複製受信機1024は、リモートサーバ装置202から応答を受信する(S719)。最後に、複製マネージャ1025は、複製ログテーブル1030内で「TRUE」に複製終了ステータスを設定し、プロセスはローカルクライアント装置101からのPUT要求について終了する(S720)。
上述されたように、値の前にキーを送信することは、サーバ装置間の値修正の迅速な通知を可能にする。アプリケーション1は、ステップS706後に処理を続行できる。代替実施形態として、ステップ705は、キー及びシーケンスIDがリモートサーバ202に到達するまでローカルクライアント101に対して応答しないことによってエラー検出能力を保証するためにステップS712の後に、又は値がリモートサーバ202に到達するまでローカルクライアント101に応答しないことによって完全なフェイルオーバー能力を保証するためにステップS719の後に実行されてよい。同じフローは、リモートクライアント装置201からリモートサーバ装置202へのPUT要求に適用してよい。
大規模災害(例えば、地震)の場合、ローカルクライアント装置101及びローカルサーバ装置102を含むローカルサイト内のネットワークインフラストラクチャは、利用できなくなる。したがって、ローカルクライアント装置101からローカルサーバ装置102内のキー−値ペアへのアクセスが利用できなくなる。
この場合、情報処理システムはリモートシステムにフェイルオーバーし、アプリケーションのためのローカルサーバ装置201の機能は、リモートサーバ装置202によって引き受けられる。このようにして、ローカルクライアント装置101を介したキー−値ペアのためのローカルサーバ装置102へのアクセスは、リモートクライアント201を介したリモートサーバ装置202に切り替えられる。ローカル装置102が利用できない間、GET動作及びPUT動作は、リモートサーバ装置202だけで実行される。
図8は、災害に起因するローカルサーバ装置102での故障の場合にアプリケーション1からのGET(読取り)要求を処理するフローチャートを示す。アプリケーション1は、例えば要求タイムアウトによってローカルサーバ装置102に関する故障の発生を検出する。例えば、リモートサーバ装置202は、アプリケーションからローカルサーバ装置102に関する故障を通知される、又はローカルサーバ装置102との通信エラーを検出することによって故障を認識する。
フェイルオーバーが起こり、アプリケーション1は、ローカルサーバ装置102によって最初に処理されるキー−値対のためにアクセス目的地をローカルサーバ装置102からリモートサーバ装置202に切り替える。
アプリケーション1は、リモートクライアント201を介してリモートサーバ装置202に特定のキーに対するGET(読取り)要求を送信する。リモートクライアント201内の要求マネージャ2012は、GET要求をリモートサーバ装置202に送信する(S801)。
リモートサーバ装置202内の要求マネージャ2022は、特定のキーに対するGET要求を受信する(S802)。要求マネージャ2022は、アプリケーション1によって要求されたキーがキー待ち行列2027に含まれるかどうかを確認する(S803)。アプリケーション1によって要求されたキーがキー待ち行列2027に含まれない場合(S803:いいえ)、要求マネージャ2022は、GET要求によって示されるキーとペアにされた値をメインデータストア2027から取り出し(S804)、リモートクライアント201に結果を返す(S805)。リモートクライアント201は、結果を受信する(S812)。
アプリケーション1によって要求されたキーがキー待ち行列2028に含まれる場合(S803:はい)、要求マネージャ2022は、キー待ち行列2028から要求されたキーのための最も古いシーケンスIDを取り出す(S806)。次いで、要求マネージャ2022は、値待ち行列2029が、同じシーケンスIDを含むかどうかを確認する(S807)。値待ち行列2029が同じシーケンスIDを含まない場合、値エラーが検出され、要求マネージャ2022は、リモートクライアント201に値損失メッセージ(エラーメッセージ)を返す(S808)。
値待ち行列2029が同じシーケンスIDを含む場合、要求マネージャ2022は、値待ち行列2029から同じシーケンスIDと関連付けられた値を入手し、キー−値ペアをメインデータストア2027に入力する(S809)。
要求マネージャ2022は、次いでキー待ち行列2028から最も古いシーケンスID及び関連付けられたキーを削除する(S810)。要求マネージャ2022は、値待ち行列2029から同じシーケンスID及び関連付けられた値を削除する(S811)。要求マネージャ2022は、次いでステップS803に戻る。
図8に関して説明されたプロセスは、異なるサイト間でのデータの不一致(例えば、同じキーのためのローカルサイト及びリモートサイトでの異なる値)を防ぐ。複製が終了していないデータに対するアクセスを禁止することは、異なるサイト間での2つの食い違った値を防ぎ、2つのサーバ装置102及び202内での記憶されたデータの整合性を維持する。上述されたように、要求された値は、待ち行列からメインデータストアに入力され、リモートクライアント装置に送信されるためにメインデータストアから取り出される。それは、単純なプロセスによって正しい値を確実に返すことを可能にする。
代替実施態様として、要求マネージャ2022は、ステップS806の要求されたキーについてキー待ち行列2028からすべてのシーケンスIDを取り出してよく、ステップS803に戻ることなく連続してステップS807、S809、S810、及びS811を実行する。要求マネージャ2022は、GET要求によって示されるキーを求めてキー待ち行列2028だけを検索してよい。
要求マネージャ2022は、PUT(書込み)要求に応えて待ち行列2028及び2029を参照してよい。要求されたキーがキー待ち行列2028に含まれ、ペアにされた値が値待ち行列2029に含まれていないとき、要求マネージャ2022は、リモートクライアント201に値損失メッセージを返してよい。対にされた値が値待ち行列2029に含まれているとき、要求マネージャ2022は、メインデータストア2027にキー−値対を入力し、リモートクライアント201から受信された新しい値を入力してよい。
図9は、複製マネージャ1025が、災害のために複製データをリモートサーバ装置202に送信できない場合のローカルサーバ装置102による処理のフローチャートを示す。
複製マネージャ1025は、リモートサーバ装置202との通信についてネットワークエラーを検出する(S901)。複製マネージャ1025は、複製ログテーブル1030から最も古いシーケンスIDを有する複製ログレコードを読み取る(S902)。複製マネージャ1025は、レコードの複製終了ステータスを確認する(S903)。
複製終了ステータスが「偽」である場合(S903:いいえ)、未完成の複製が検出される。複製マネージャ1025は、未完成の複製テーブル(不図示)にレコードを追加し(S904)、ステップS905に進む。
複製終了ステータスが「真」である場合(S903:はい)、レコードのキー−値ペアの複製は終了され、キー−値ペアに対して追加の動作は必要とされていない。複製マネージャ1025は、ステップS905に進む。
ステップS905で、複製マネージャ1025は、カレントレコードが最後のレコードであるかどうかを判断する。カレントレコードが最後のレコードではない場合(S905:いいえ)、複製マネージャ1025は次のシーケンスIDを有するレコードを読み取り(S906)、ステップS903に戻る。
カレントレコードが最後のレコードである場合(S905:はい)、複製マネージャ1025は、未完成の複製テーブルを確認する(S907)。未完成の複製テーブルが少なくとも1つのレコードを含む場合(S907:はい)、複製マネージャ1025は、管理者端末(不図示)にエラーメッセージを送信する(発行する)ことによって未完成の複製の管理者に警告する(S908)。未完成の複製テーブルがレコードを含まない場合(S907:いいえ)、プロセスは終わる。
上述されたように、エラーメッセージは、その複製が終了していないキー−値ペアが故障したサイトに残されているときに、発行される。したがって、異なるサイトでの食い違った値は妨げられる。
図10は、回復プロセスにおけるローカルサーバ装置102とリモートサーバ装置202との間の再同期、及びローカルサーバ装置102内での動作の再開のフローチャートを示す。
ローカルサーバ装置102内の複製マネージャ1025は、リモートサーバ装置202に回復要求を送信する(S1001)。リモートサーバ装置202内の複製受信機2024は、回復要求を受信する(S1002)。複製マネージャ2025は、メインデータストア2027、キー待ち行列2028、及び値待ち行列2029をロックする(S1003)。
リモートサーバ装置202内の複製マネージャ2025は、次いでローカルサーバ装置102に回復準備完了メッセージを返す(S1004)。ローカルサーバ装置102内の複製受信機1024は、メッセージを受信する(S1005)。
複製マネージャ1025は、複製ログテーブル1030を参照し、リモートサーバ装置202に送信される複製データを収集する(S1006)。ステップS1006を実行するための方法は図11に詳説される。一方、複製データのフォーマットは図12に詳説される。
複製マネージャ1025は、複製データをリモートサーバ装置202に送信するために、複製送信機1023を使用する(S1007)。リモートサーバ装置202内の複製受信機2024は、複製データを受信する(S1008)。リモートサーバ装置202内の複製マネージャ2025は、複製データを使用し、回復動作を実行する(S1009)。ステップS1009は、図13で詳説される。
複製マネージャ2025は、複製ログテーブル2030を参照し、ローカルサーバ装置102に送信される複製データを収集する(S1010)。このステップは、図11に詳説される動作と同じであるが、代わりにリモートサーバ装置202によって実行される。複製マネージャ2025は、リモートサーバ装置202から複製データを送信するために、複製マネージャ2023を使用する(S1011)。
ローカルサーバ装置102内の複製受信機1024は、複製データを受信する(S1012)。複製マネージャ2025は、複製受信機1024によって受信された複製データを使用し、回復動作を実行する(S1013)。ステップは、図13で詳説される動作と同じであるが、代わりにローカルサーバ装置102によって実行される。
最後に、複製マネージャ1025は、回復終了メッセージをリモートサーバ装置202に送信し、動作を完了する(S1014)。複製受信機2024は、応答を受信し、再同期動作も完了する(S1015)。
図10に関して上述されたプロセスは、ローカルサーバ装置102及びリモートサーバ装置220が、回復プロセスでメインデータストア1027及び2027を再同期できるようにする。
図11は、ステップS1006及びS1010で活用される収集動作のフローチャートを示す。ステップS1006でのローカルサーバ装置102による動作は、図11を参照して説明される。しかしながら、同じフローは、ステップS1010のリモートサーバ装置にも適用する。
複製マネージャ1025は、複製ログテーブル1030から最も古いシーケンス番号を有する複製ログレコードを読み取る(S1101)。複製マネージャ1025は、レコードの複製終了ステータスを確認する(S1102)。
複製終了ステータスが「FALSE」である場合(S1102:いいえ)、次いで未完成の複製が検出される。複製マネージャ1025は。回復のための複製データにレコードを追加し(S1103)、ステップS1104に進む。
複製終了ステータスが「TRUE」である場合(S1102:はい)、次いでレコードのキー−値ペアの複製は終了し、キー−値ペアに追加の動作は必要とされない。複製マネージャ1025は、ステップS1104に進む。
ステップS1104では、複製マネージャ1025は、カレントレコードが最後のレコードであるかどうかを判断する。カレントレコードが最後のレコードではない場合(S1104:いいえ)、複製マネージャ1025は、次のシーケンスIDを有するレコードを読み取り(S1105)、ステップS1102に戻る。
カレントレコードが最後のレコードである場合(S1104:はい)、複製マネージャ1025は、回復のための複製データを返す(S1106)。
上述されたように、各ペアの複製ステータスを管理する複製ログテーブルは、サーバ装置が回復プロセスで複製されるペアを決定できるようにする。
図12は、回復のための複製データの例示的なフォーマットである。未完成の複製データは、「FALSE」の複製終了ステータスの各レコードのシーケンスID、キー、前値、新しい値、及び複製終了ステータスを含む。要するに、回復のための複製データは、複製終了ステータスが「FALSE」である複製ログテーブル内のすべてのレコードから成る。
図13は、ステップS1009及びS1013で活用される回復動作のフローチャートを示す。ステップS1009でのリモートサーバ装置202による動作は、図13を参照して説明される。しかしながら、同じ流れは、ステップS1013でのローカルサーバ装置102にも適用する。
複製マネージャ2025は、フォーマットが図12に示される回復のための複製データから最も古いシーケンスIDを有する複製データレコードを読み取る(S1301)。
複製マネージャ2025は、カレント複製データレコードに含まれるキーとペアにされた現在値をメインデータストア2027から取り出す(S1302)。
複製マネージャ2025は、メインデータストア2027から取り出された現在値及びカレント複製データレコードに含まれる前値を比較する(S1303)。値が等しい(同じ値)場合、次いで不一致は存在せず、複製マネージャ2025は、カレント複製データレコードに含まれる新しい値及びキーを、メインデータストア2027の中に入力する(S1304)。
値が異なる場合、次いで不一致が存在し、複製マネージャ2025は管理者端末にエラーメッセージ(警報)を送信する(S1305)。エラーメッセージは、キー、メインデータストア2027内の現在値、並びに複製データレコード内の前値及び新しい値を提示する。エラーメッセージは、管理者に、どの値がカレントキーに対する正しい値として適用されるべきであるのかを選ぶように促す。
値が自動一致(S1304)又は管理者手動無効(S1306)を介して決定された後、複製マネージャ2025は、カレントキー−値ペアの複製終了ステータスを「TRUE」で設定する(S1307)。
次いで、複製マネージャ1025は、カレントレコードが最後のレコードであるかどうかを判断する(S1308)。カレントレコードが最後のレコードではない場合(S1308:いいえ)、複製マネージャ1025は、次のシーケンスIDを有するレコードを読み取り(S1309)、ステップS1302に戻る。カレントレコードが最後のレコードである場合(S1308:はい)、プロセスは終わる。
リモートサーバ装置202が、ローカルサーバ装置102が利用できない間にキー−値ペアを修正する場合、ローカルサーバ装置102内のキー−値ペアは、リモートサーバ装置202内のキー−値ペアと同期していない。具体的には、リモートサーバ装置202は、ローカルサーバ装置102からのフェイルオーバー後にローカルサーバ装置102によって最初に処理される(アプリケーションから受信される)キー−値ペアを修正できる。例えば、リモートサーバ装置202は、ローカルサーバ装置102によってアプリケーション1から最初に受信される新しいキー−値ペアを追加できる。リモートサーバ装置202は、ローカルサーバ装置102から送信される既存のキー−値ペアの値を修正又は削除できる。
上述されたプロセスは、サーバ装置が、データストア間の整合性を確認し、データストア間の不一致を解決できるようにする。
代替実施態様では、値−シーケンスIDパケット602は、値及びシーケンスIDに加えてキーを含んでよい。この場合、値待ち行列1029及び2029は、省略できる。複製マネージャ2025は、値−シーケンスIDパケット602からキー−値対を入手することができ、キー−値をメインデータストア2027に入力し、キー待ち行列2028から一致するキー及びシーケンスIDを削除する。
図14は、ローカルサーバ装置102における災害に起因する故障の場合の値及びシーケンスIDに加えて、キーを含む値−シーケンスIDパケット602を使用し、アプリケーション1からの読取り要求を処理するフローチャートを示す。図8と比較すると、ステップ1401からS1406は、それぞれステップS801からS805、及びS812に相当する。要求されたキーがステップS1403に存在するとき、要求マネージャ2022は、キー待ち行列2028を参照することなく、リモートクライアント201に値損失メッセージを返す(S1407)。上述されたように、値待ち行列2029は存在しない。
上記では、ローカルサーバ装置102からリモートサーバ装置202への複製が、図7から図14を参照して説明される。システムは、同じようにローカルサーバ装置102からリモートサーバ装置102への複製を実行できる。
本発明は、上述された実施形態に制限されるのではなく、種々の修正を含む。上述された実施形態は、本発明のよりよい理解のために詳細に説明され、上述されたすべての構成を含む構成に制限されていない。一実施形態の構成の一部は、別の実施形態の構成で置換されてよい。一実施形態の構成は、別の実施形態の構成に組み込まれてよい。各実施形態の構成の一部分は、追加されてよい、削除されてよい、又は異なる構成の部分によって置換されてよい。
上述された構成、機能、及びプロセッサは、それらのすべて又は一部分のために、例えば集積回路を設計することによって等、ハードウェアによって実施されてよい。上述された構成及び機能は、ソフトウェアによって実装されてよい。つまり、プロセッサは、機能を提供するプログラムを解釈し、実行する。機能を実装するためのプログラム、テーブル、及びファイルの情報は、メモリ、ハードディスクドライブ、若しくはSSD等のストレージデバイス、又はICカード若しくはSDカード等の記憶媒体内に記憶されてよい。
図面は、説明のために必要と見なされる制御ライン及び情報ラインを示しているが、製品内のすべての制御ライン又は情報ラインを示しているわけではない。すべての構成部品のほとんどが実際に相互接続されていることも考慮できる。

Claims (14)

  1. 情報処理システムであって、
    第1のシステムと、
    第2のシステムと
    を備え、
    前記第1のシステムが、
    1つ以上のクライアントから値を、前記値の識別子とともに受信し、
    第1のデータストアに連続して前記値を入力し、
    前記値のそれぞれを、前記第1のデータストアへの前記値の入力シーケンスでの位置を示すシーケンスIDと関連付け、
    第1の値の第1の識別子、及び前記第1の値と関連付けられた第1のシーケンスIDを前記第2のシステムに送信し、
    前記第1の識別子及び前記第1のシーケンスIDを送信後に、前記第1のシーケンスID及び前記第1の値を前記第2のシステムに送信する
    ように構成され、
    前記第2のシステムが、
    前記第1のシステムから送信された前記第1の識別子及び前記第1のシーケンスIDを第1の待ち行列に保持し、
    前記第1のシステムから第2のデータストアに前記第1の識別子の後に受信された前記第1の値を入力する
    ように構成される、情報処理システム。
  2. 前記第1のシステムから前記第2のシステムへのフェイルオーバー後に、前記第2のシステムが、第2の値の第2の識別子及び前記第2の値と関連付けられた第2のシーケンスIDが前記第1の待ち行列に記憶され、前記第2の値が、前記第2の識別子とともに前記第1のシステムから受信されないときにエラーメッセージを発行するように構成される、請求項1に記載の情報処理システム。
  3. 前記1つ以上のクライアントからの第3の値の第3の識別子を示す要求に応えて、前記第2のシステムが、前記第3の値を求めて前記第2のデータストアを検索する前に、前記第3の識別子を求めて前記第1の待ち行列を検索するように構成される、請求項1に記載の情報処理システム。
  4. 前記第2のシステムが、前記第1のシステムから受信された値及び関連付けられたシーケンスIDを記憶するために第2の待ち行列を含み、
    前記第2の待ち行列に記憶された第3の値に対する要求に応えて、前記第2のシステムが、前記第2の待ち行列から取り出された前記第3の値を前記第2のデータストアに入力し、前記第2のデータストアから取り出された前記第3の値を返すように構成される、
    請求項1に記載の情報処理システム。
  5. 前記第1のシステムが、値ごとに前記第2のシステムへの複製が終了しているかどうかを示す複製管理情報を含み、
    前記第1のシステムが前記第2のシステムとの通信についてネットワークエラーを検出し、前記複製管理情報が、前記第2のシステムへの値の複製が終了していないことを示すとき、前記第1のシステムがエラーメッセージを発行するように構成される、
    請求項1に記載の情報処理システム。
  6. 前記第1のシステムが、値ごとに前記第2のシステムへの複製が終了しているかどうかを示す複製管理情報を含み、
    前記第1のシステムが、フェイルオーバーからの回復プロセスにおいて、新しい値の送信要求に、前記新しい値の識別子、新しい値と同じ識別子を持つ前値から構成される前記複製管理情報を含み、前記新しい値の識別子に対応する前記前値によりどの複製まで終了しているかを示し、
    前記第2のシステムが、
    前記前値と前記第2のデータストア内の前記識別子によって識別された値とを比較し、
    前記前値及び前記第2のデータストア内の前記識別子によって識別された前記値が異なるときに、エラーメッセージを発行する
    ように構成される、請求項1に記載の情報処理システム。
  7. 前記前値、及び前記第2のデータストア内の前記識別子によって識別された前記値が等しいとき、前記第2のシステムが、前記第2のデータストア内の前記識別子によって識別された前記値を前記新しい値に変更するように構成される
    請求項6に記載の情報処理システム。
  8. 第1のシステム及び第2のシステムを含む情報処理システムにおけるデータ複製のための方法であって、
    前記第1のシステムによって、1つ以上のクライアントから値を、前記値の識別子とともに受信することと、
    前記第1のシステムによって、前記値を連続して第1のデータストアに入力することと、
    前記第1のシステムによって、前記値のそれぞれを、前記値の前記第1のデータストアへの入力シーケンスでの位置を示すシーケンスIDと関連付けることと、
    前記第1のシステムによって、第1の値の第1の識別子及び前記第1の値と関連付けられた第1のシーケンスIDを前記第2のシステムに送信することと、
    前記第1のシステムによって、前記第1の識別子及び前記第1のシーケンスIDを送信後に、前記第1のシーケンスID及び前記第1の値を前記第2のシステムに送信することと、
    前記第2のシステムによって、前記第1のシステムから送信された前記第1の識別子及び前記第1のシーケンスIDを第1の待ち行列に保持することと、
    前記第2のシステムによって、前記第1のシステムから第2のデータストアに前記第1の識別子の後に受信された前記第1の値を入力することと
    を含む、方法。
  9. 前記第1のシステムから前記第2のシステムへのフェイルオーバー後に、前記第2のシステムによって、第2の値の第2の識別子及び前記第2の値と関連付けられた第2のシーケンスIDが第1の待ち行列に記憶され、前記第2の値が前記第2の識別子とともに前記第1のシステムから受信されないときにエラーメッセージを発行すること
    をさらに含む、請求項8に記載の方法。
  10. 前記1つ以上のクライアントから第3の値の第3の識別子を示す要求に応えて、前記第2のシステムによって、前記第3の値を求めて前記第2のデータストアを検索する前に、前記第3の識別子を求めて前記第1の待ち行列を検索すること
    をさらに含む、請求項8に記載の方法。
  11. 前記第2のシステムが、前記第1のシステムから受信された値及び関連付けられたシーケンスIDを記憶するために第2の待ち行列を含み、
    前記方法が、さらに、
    前記第2の待ち行列に記憶された第3の値に対する要求に応えて、前記第2のシステムによって、前記第2の待ち行列から取り出された前記第3の値を前記第2のデータストアに入力し、前記第2のデータストアから取り出された前記第3の値を返すこと
    をさらに含む、請求項8に記載の方法。
  12. 前記第1のシステムが、値ごとに前記第2のシステムへの複製が終了しているかどうかを示す複製管理情報を含み、
    前記方法が、
    前記第1のシステムによって、前記第1のシステムが前記第2のシステムとの通信についてネットワークエラーを検出し、前記複製管理情報が、値の前記第2のシステムへの複製が終了していないことを示すとき、エラーメッセージを発行すること
    をさらに含む、請求項8に記載の方法。
  13. 前記第1のシステムが、値ごとに前記第2のシステムへの複製が終了しているかどうかを示す複製管理情報を含み、
    前記方法が、
    前記第1のシステムが、フェイルオーバーからの回復プロセスにおいて、新しい値の送信要求に、前記新しい値の識別子、新しい値と同じ識別子を持つ前値から構成される前記複製管理情報を含み、前記新しい値の識別子に対応する前記前値によりどの複製まで終了しているかを示し、
    前記第2のシステムによって、前記前値と前記第2のデータストア内の前記識別子によって識別された値とを比較することと、
    前記第2のシステムによって、前記前値及び前記第2のデータストア内の前記識別子によって識別された前記値が異なるとき、エラーメッセージを発行することと
    をさらに含む、請求項8に記載の方法。
  14. 前記前値及び前記第2のデータストア内の前記識別子によって識別された前記値が等しいとき、前記第2のシステムによって、前記第2のデータストア内の前記識別子によって識別された前記値を、前記新しい値に変更すること
    をさらに含む、請求項13に記載の方法。
JP2018562736A 2016-09-05 2016-09-05 情報処理システム Active JP6697101B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/004044 WO2018042469A1 (en) 2016-09-05 2016-09-05 Information processing system

Publications (2)

Publication Number Publication Date
JP2019509579A JP2019509579A (ja) 2019-04-04
JP6697101B2 true JP6697101B2 (ja) 2020-05-20

Family

ID=61300243

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018562736A Active JP6697101B2 (ja) 2016-09-05 2016-09-05 情報処理システム

Country Status (3)

Country Link
US (1) US10896103B2 (ja)
JP (1) JP6697101B2 (ja)
WO (1) WO2018042469A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10509675B2 (en) * 2018-02-02 2019-12-17 EMC IP Holding Company LLC Dynamic allocation of worker nodes for distributed replication
JP2022040957A (ja) * 2020-08-31 2022-03-11 株式会社日立製作所 暗号鍵管理システムおよび暗号鍵管理方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW478014B (en) * 1999-08-31 2002-03-01 Semiconductor Energy Lab Semiconductor device and method of manufacturing thereof
JP2004259079A (ja) * 2003-02-27 2004-09-16 Hitachi Ltd データ処理システム
JP2005301464A (ja) * 2004-04-08 2005-10-27 Hitachi Ltd バックアップ方法ならびにバックアップシステム
US7917469B2 (en) * 2006-11-08 2011-03-29 Hitachi Data Systems Corporation Fast primary cluster recovery
JP5307294B2 (ja) * 2010-05-23 2013-10-02 株式会社コアアプリ 操作支援コンピュータプログラム、操作支援コンピュータシステム
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
WO2013069055A1 (en) * 2011-11-09 2013-05-16 Hitachi, Ltd. Information processing system and method of controlling the same
US10326674B2 (en) * 2013-08-27 2019-06-18 Purdue Research Foundation Compressing trace data
JP5947336B2 (ja) * 2014-06-03 2016-07-06 日本電信電話株式会社 スナップショット制御装置、スナップショット制御方法およびスナップショット制御プログラム
US9632907B2 (en) * 2014-12-10 2017-04-25 Intel Corporation Tracking deferred data packets in a debug trace architecture
JP6304048B2 (ja) * 2015-01-14 2018-04-04 富士電機株式会社 制御システム、および制御装置
US10354070B2 (en) * 2015-08-22 2019-07-16 Avocado Systems Inc. Thread level access control to socket descriptors and end-to-end thread level policies for thread protection
US9760283B2 (en) * 2015-09-28 2017-09-12 Zscaler, Inc. Systems and methods for a memory model for sparsely updated statistics
US10296264B2 (en) * 2016-02-09 2019-05-21 Samsung Electronics Co., Ltd. Automatic I/O stream selection for storage devices

Also Published As

Publication number Publication date
US20190073281A1 (en) 2019-03-07
JP2019509579A (ja) 2019-04-04
WO2018042469A1 (en) 2018-03-08
US10896103B2 (en) 2021-01-19

Similar Documents

Publication Publication Date Title
US9934242B2 (en) Replication of data between mirrored data sites
WO2018040591A1 (zh) 一种远程数据复制方法及系统
EP3062226B1 (en) Data replication method and storage system
KR101434128B1 (ko) 웹 서비스 클라이언트 인터페이스를 갖는 분배형 저장 시스템
US9231988B2 (en) Intercluster repository synchronizer and method of synchronizing objects using a synchronization indicator and shared metadata
WO2016070375A1 (zh) 一种分布式存储复制系统和方法
JP5548829B2 (ja) 計算機システム、データ管理方法及びデータ管理プログラム
US20150347250A1 (en) Database management system for providing partial re-synchronization and partial re-synchronization method of using the same
JP2004334574A (ja) ストレージの運用管理プログラム、運用管理方法及び管理計算機
JP6475304B2 (ja) トランザクション処理方法および装置
WO2023046042A1 (zh) 一种数据备份方法和数据库集群
JP2007073004A (ja) データ保全情報装置、分散ストレージシステム及びその方法
JP5292351B2 (ja) メッセージキュー管理システム及びロックサーバ及びメッセージキュー管理方法及びメッセージキュー管理プログラム
JP2005182683A (ja) データ転送方法及びシステム並びにプログラム
US20030154305A1 (en) High availability lightweight directory access protocol service
CN113010496A (zh) 一种数据迁移方法、装置、设备和存储介质
JP5292350B2 (ja) メッセージキュー管理システム及びロックサーバ及びメッセージキュー管理方法及びメッセージキュー管理プログラム
US8117493B1 (en) Fast recovery in data mirroring techniques
JP6697101B2 (ja) 情報処理システム
WO2019109257A1 (zh) 一种日志管理方法、服务器和数据库系统
US7962600B2 (en) WAFS disconnected-mode read-write access
EP4198701A1 (en) Active-active storage system and data processing method based on same
KR101748913B1 (ko) 분산 저장 환경에서 게이트웨이를 선택하기 위한 클러스터 관리 방법 및 데이터 저장 시스템
JP5956364B2 (ja) クラスタシステム
CN114168066A (zh) 一种双活存储系统及其处理数据的方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180822

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200214

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: 20200407

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200423

R150 Certificate of patent or registration of utility model

Ref document number: 6697101

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150