JP6086463B2 - ピアツーピアデータ複製用の方法、デバイス、およびシステム、ならびにマスタノード切替え用の方法、デバイス、およびシステム - Google Patents

ピアツーピアデータ複製用の方法、デバイス、およびシステム、ならびにマスタノード切替え用の方法、デバイス、およびシステム Download PDF

Info

Publication number
JP6086463B2
JP6086463B2 JP2016517160A JP2016517160A JP6086463B2 JP 6086463 B2 JP6086463 B2 JP 6086463B2 JP 2016517160 A JP2016517160 A JP 2016517160A JP 2016517160 A JP2016517160 A JP 2016517160A JP 6086463 B2 JP6086463 B2 JP 6086463B2
Authority
JP
Japan
Prior art keywords
node
subscriber
master node
subscriber node
commit
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
JP2016517160A
Other languages
English (en)
Other versions
JP2016521427A (ja
Inventor
プラサナ・ヴェンカテシュ・ラマムルティ
ヴァムシ・クリシュナ
Original Assignee
ホアウェイ・テクノロジーズ・カンパニー・リミテッド
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 ホアウェイ・テクノロジーズ・カンパニー・リミテッド filed Critical ホアウェイ・テクノロジーズ・カンパニー・リミテッド
Publication of JP2016521427A publication Critical patent/JP2016521427A/ja
Application granted granted Critical
Publication of JP6086463B2 publication Critical patent/JP6086463B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Telephonic Communication Services (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、コンピュータ技術の分野に関し、詳細には、ピアツーピアデータ複製用の方法、デバイス、およびシステム、ならびにマスタノード切替え用の方法、デバイス、およびシステムに関する。
多くの電気通信用途および企業用途では、シングルマスタのRDBMS(リレーショナルデータベース管理システム)の複製が標準である。マスタとして働く1つのノードが存在し、その上で書込みを行うことができる。次いで、これらの書込みは、物理的な書込みの複製、または構造化照会言語(SQL)文(すなわち、論理的な書込み)の複製のいずれかによって、1つまたは複数の加入者に同期される。
図1は、従来技術におけるシングルマスタ複製トポロジである。図1に示されたように、アプリケーションはマスタデータベース(マスタノード)に接続される。このアプリケーションは、SQL文(データ操作言語(DML)またはデータ定義言語(DDL))を介して、データベースに書き込むことが許可される。書込みが成功すると、マスタデータベースは、加入者データベース1および2にデータを複製する。複製は、物理的な複製または論理的な複製によって行うことができ、非同期式または同期式であり得る。図2は、図1に示されたシングルマスタ複製トポロジによる、複製の標準実装形態の概略図である。図2に示されたように、アプリケーションは、S201でマスタデータベースにDML/DDL文をプッシュし、マスタデータベースは、S202でDML/DDL文を構文解析し、次いでS203でDML/DDL文を実行し、それは、S204で物理的な書込みをもたらす。物理的な書込みは、マスタノードのメモリページ内で行われ得るか、またはマスタデータベースのストレージディスクへの直接の入力/出力(I/O)書込みであり得る。この書込みが成功すると、マスタデータベースは、S205でこのマスタデータベースに接続された任意の加入者データベースに、書き込まれているデータを複製する必要があるかどうかを判断し、いいえの場合、マスタデータベースは、S206で複製を終了する。はいの場合、マスタデータベースは、S207でこのマスタデータベースに接続された各加入者データベースにリドゥ(redo)エンティティを送って、加入者データベースに、書き込まれているデータを複製し、ここで、データを複製する手順は、上記の書込み動作の手順と同様であり、SQL文が物理的なリドゥの代わりに発送される。
上記の従来技術は、シングルネットワークのボトルネックの主な弱点を有する。マスタノードは、解決策全体に対するボトルネックになる。図1に示されたシングルマスタ複製トポロジによれば、マスタデータベースは同じデータを2回複製しなければならず、したがって2倍のネットワーク負荷を被る。
本発明の実施形態は、ピアツーピアモードで複製を配信することによって、複製クラスタ内のマスタノードから複製ボトルネックを軽減するために、ピアツーピアデータ複製用の方法、デバイス、およびシステム、ならびにマスタノード切替え用の方法、デバイス、およびシステムを提供する。
本発明の実施形態は、以下の技術的解決策を採用する。
本発明の第1の態様は、ピアツーピアデータ複製用の方法を提供し、
第1の物理エンティティおよび第2の物理エンティティを含む少なくとも2つの物理エンティティであらかじめ設定され、第1の加入者ノードおよび第2の加入者ノードを含む少なくとも2つの加入者ノードに接続されたマスタノード内の第1の物理エンティティ上で第1の書込み動作が発生したとき、マスタノードにより、マスタノード内で第1の書込み動作の順番を示すために使用されるコミットシーケンス番号(CSN)を付加された第1のコミットリドゥレコードを生成することと、
マスタノードにより、物理エンティティと加入者ノードとの間のマッピング関係に基づいて第1の物理エンティティに対応する第1の加入者ノードに、CSNを付加された第1のコミットリドゥレコードをプッシュすることとを含み、第1のコミットリドゥレコードは、第1の書込み動作のデータをマスタノードから第1の物理エンティティに対応する第1の加入者ノードに複製し、次いで、第1の加入者ノードにより、受信された第1のコミットリドゥレコードを第2の加入者ノードにプッシュすることを介して、第2の加入者ノードに複製するために使用される。
本発明の第1の態様の第1の実装形態では、物理エンティティは、テーブル空間、デバイスファイル、ページ、および/またはパーティションである。
本発明の第1の態様の第2の実装形態では、物理エンティティと加入者ノードとの間のマッピング関係は、マスタノードにより、様々な加入者ノードをマスタノードと加入者ノードとの間の様々な接続にマッピングすること、および様々な接続をマスタノード内の各セットが1つまたは複数の物理エンティティを含む物理エンティティの様々なセットにマッピングすることによって確立され、
マスタノードにより、物理エンティティと加入者ノードとの間のマッピング関係に基づいて第1の物理エンティティに対応する第1の加入者ノードに、CSNを付加された第1のコミットリドゥレコードをプッシュすることは、
マスタノードにより、マスタノードと第1の加入者ノードとの間の接続を介して、第1の物理エンティティと第1の加入者ノードとの間のマッピング関係に基づいて第1の物理エンティティに対応する第1の加入者ノードに、CSNを付加された第1のコミットリドゥレコードをプッシュすることを含む。
本発明の第1の態様の第3の実装形態では、物理エンティティと加入者ノードとの間のマッピング関係は、マスタノードにより、様々な加入者ノードをマスタノードと加入者ノードとの間の様々な接続にマッピングすること、および様々な接続をマスタノード内の各セットが複数の物理エンティティを含む物理エンティティの様々なセットにマッピングすること、およびさらにマスタノード内の物理エンティティの1つのセットを物理エンティティのそのセットに対応する加入者ノード内の様々な物理エンティティにマッピングすることによって確立され、
マスタノードにより、物理エンティティと加入者ノードとの間のマッピング関係に基づいて第1の物理エンティティに対応する第1の加入者ノードに、CSNを付加された第1のコミットリドゥレコードをプッシュすることは、
マスタノードにより、第1の物理エンティティに対応する第3の物理エンティティに、CSNを付加された第1のコミットリドゥレコードをプッシュすることを含み、第1の加入者ノードは、マスタノードと第1の加入者ノードとの間の接続を介して、第1の物理エンティティが属し、マスタノードの物理エンティティである物理エンティティのセットと第1の加入者ノードとの間のマッピング関係、および第1の物理エンティティと第3の物理エンティティとの間のマッピング関係に基づいて、第3の物理エンティティおよび第4の物理エンティティを含む少なくとも2つの物理エンティティであらかじめ設定される。
本発明の第1の態様の第4の実装形態では、新しい加入者ノードがマスタノードに接続されたとき、
マスタノードにより、マスタノード内の物理エンティティ、および物理エンティティと新しい加入者ノードを含む加入者ノードとの間のマッピング関係が再構成された後、新しい加入者ノードにコミットリドゥレコードを同期させることをさらに含む。
本発明の第1の態様の第5の実装形態では、第1のコミットリドゥレコードは、関連する書込み動作が発生した物理エンティティに基づいて、第2の書込み動作が第2の物理エンティティ上で発生したときマスタノードによって生成された第2のコミットレコードから分離される。
本発明の第1の態様の第6の実装形態では、第1のコミットレコードおよび第2のコミットレコードは、マスタノードにより並行して、それぞれ第1の加入者ノードおよび第2の加入者ノードにプッシュされ、その結果、第1のコミットレコードおよび第2のコミットレコードは、それぞれ第1の加入者ノードおよび第2の加入者ノードにより並行して再生され、第2のコミットリドゥレコードは、第2の書込み動作のデータをマスタノードから第2の物理エンティティに対応する第2の加入者ノードに複製し、次いで、第2の加入者ノードにより、受信された第2のコミットリドゥレコードを第1の加入者ノードにプッシュすることを介して、第1の加入者ノードに複製するために使用される。
本発明の第2の態様は、ピアツーピアデータ複製用の方法を提供し、
加入者ノードにより、マスタノード内で書込み動作の順番を示すために使用されるコミットシーケンス番号(CSN)を付加されたコミットリドゥレコードを、マスタノードから受信することと、
初期化中に0にセットされた加入者ノードのCSNを引いた、コミットリドゥレコードに付加されたCSNの絶対値が1であるとき、加入者ノードのCSNをコミットリドゥレコードに付加されたCSNに更新することと、
加入者ノードにより、コミットリドゥレコードを再生して、マスタノード上で発生した書込み動作のデータをマスタノードから、マスタノードとマスタノードに接続された他の加入者ノードとに接続された加入者ノードに複製することと、
加入者ノードにより、コミットリドゥレコードを他の加入者ノードにプッシュして、マスタノード上で発生した書込み動作のデータを他の加入者ノードに複製することとを含む。
本発明の第2の態様の第1の実装形態では、
加入者ノードのCSNを引いた、受信されたコミットリドゥレコードに付加されたCSNの絶対値が1でないとき、加入者ノードにより、受信されたコミットリドゥレコードを保存し、別のコミットリドゥレコードを待つことと、
加入者ノードの更新されたCSNを引いた、受信されたコミットリドゥレコードに付加されたCSNの絶対値が1である値に、加入者ノードのCSNが更新された後、加入者ノードにより、コミットリドゥレコードを再生して、マスタノード上で発生した書込み動作のデータをマスタノードから加入者ノードに複製することとをさらに含む。
本発明の第2の態様の第2の実装形態では、
加入者ノードにより、すべての他の加入者ノードにプル要求を送信して、マスタノードがダウンし、加入者ノードが新しいマスタノードに選出された後、他の加入者ノード内でコミットリドゥレコードを再生することによって取得された、マスタノード上で発生した書込み動作のすべてのデータを取得することと、
新しいマスタノードとして働く加入者ノードにより、新しいマスタノード内の物理エンティティとその加入者ノードではない他の加入者ノードとの間のマッピング関係を再割当てすることとをさらに含む。
本発明の第2の態様の第3の実装形態では、
加入者ノードにより、前のマスタノードがダウンし、別の加入者ノードが新しいマスタノードに選出された後、新しいマスタノードによって送信されたプル要求に応答して、加入者ノード内の前のマスタノード上で発生した書込み動作のデータを、新しいマスタノードとして働く加入者ノードに送信することをさらに含む。
本発明の第3の態様は、マスタノード切替え用の方法を提供し、
加入者ノードとマスタノードが同じクラスタ内にあり、マスタノードがダウンしたとき、少なくとも2つの加入者ノードの中の加入者ノードにより、データ同期が終了するか、またはデータ同期用に事前構成された時間期間に到達するまで、その加入者ノードと他の加入者ノードとの間でデータ同期を実行することと、
複数の加入者ノードの最も高いコミットシーケンス番号(CSN)に基づいて、複数の加入者ノードからその加入者ノードが新しいマスタノードに選出された後、新しいマスタノードとして働く加入者ノードにより、新しいマスタノードに選出されなかった残りの加入者ノードにプル要求を送信することと、
新しいマスタノードとして働く加入者ノードにより、新しいマスタノードに選出されなかった残りの加入者ノードからデータを受信することとを含む。
本発明の第3の態様の第1の実装形態では、
新しいマスタノードとして働く加入者ノードにより、新しいマスタノード内の物理エンティティとその加入者ノードではない他の加入者ノードとの間のマッピング関係を確立することと、
書込み動作が新しいマスタノード内の物理エンティティ上で発生したとき、新しいマスタノードとして働く加入者ノードにより、マッピング関係に従って、新しいマスタノードと新しいマスタノードに選出されなかった他の加入者ノードとの間のピアツーピアデータ複製を実行することとをさらに含む。
本発明の第4の態様は、マスタノード切替え用の方法を提供し、
加入者ノードとマスタノードが同じクラスタ内にあり、マスタノードがダウンしたとき、少なくとも2つの加入者ノードの中の加入者ノードにより、データ同期が終了するか、またはデータ同期用に事前構成された時間期間に到達するまで、その加入者ノードと他の加入者ノードとの間でデータ同期を実行することと、
他の加入者ノードと一緒に加入者ノードにより、複数の加入者ノードの最も高いコミットシーケンス番号(CSN)に基づいて、複数の加入者ノードからある加入者ノードを新しいマスタノードに選出することと、
新しいマスタノードに選出されなかった加入者ノードにより、新しいマスタノードによって発行されたプル要求を受信することと、
新しいマスタノードに選出されなかった加入者ノードにより、新しいマスタノードによって送信されたプル要求に応答して、その加入者ノード内のデータを新しいマスタノードに送信することとを含む。
本発明の第5の態様は、ピアツーピアデータ複製用のデバイスを提供し、デバイスはマスタノードに位置し、デバイスは、
第1の物理エンティティおよび第2の物理エンティティを含む少なくとも2つの物理エンティティであらかじめ設定され、第1の加入者ノードおよび第2の加入者ノードを含む少なくとも2つの加入者ノードに接続されたマスタノード内の第1の物理エンティティ上で第1の書込み動作が発生したとき、マスタノード内で第1の書込み動作の順番を示すために使用されるコミットシーケンス番号(CSN)を付加された第1のコミットリドゥレコードを生成するように構成された生成ユニットと、
物理エンティティと加入者ノードとの間のマッピング関係に基づいて第1の物理エンティティに対応する第1の加入者ノードに、CSNを付加された第1のコミットリドゥレコードをプッシュするように構成された複製ユニットとを含み、第1のコミットリドゥレコードは、第1の書込み動作のデータをマスタノードから第1の物理エンティティに対応する第1の加入者ノードに複製し、次いで、第1の加入者ノードにより、受信された第1のコミットリドゥレコードを第2の加入者ノードにプッシュすることを介して、第2の加入者ノードに複製するために使用される。
本発明の第5の態様の第1の実装形態では、物理エンティティは、テーブル空間、デバイスファイル、ページ、および/またはパーティションである。
本発明の第5の態様の第2の実装形態では、
様々な加入者ノードをマスタノードと加入者ノードとの間の様々な接続にマッピングすること、および様々な接続をマスタノード内の各セットが1つまたは複数の物理エンティティを含む物理エンティティの様々なセットにマッピングすることによって、物理エンティティと加入者ノードとの間のマッピング関係を確立するように構成された第1のマッピングユニットをさらに含み、
複製ユニットは、詳細には、マスタノードと第1の加入者ノードとの間の接続を介して、第1の物理エンティティと第1の加入者ノードとの間のマッピング関係に基づいて第1の物理エンティティに対応する第1の加入者ノードに、CSNを付加された第1のコミットリドゥレコードをプッシュするように構成され、第1のコミットリドゥレコードは、第1の書込み動作のデータをマスタノードから第1の物理エンティティに対応する第1の加入者ノードに複製し、次いで、第1の加入者ノードにより、受信された第1のコミットリドゥレコードを第2の加入者ノードにプッシュすることを介して、第2の加入者ノードに複製するために使用される。
本発明の第5の態様の第3の実装形態では、
様々な加入者ノードをマスタノードと加入者ノードとの間の様々な接続にマッピングすること、および様々な接続をマスタノード内の各セットが複数の物理エンティティを含む物理エンティティの様々なセットにマッピングすること、およびさらにマスタノード内の物理エンティティの1つのセットを物理エンティティのそのセットに対応する加入者ノード内の様々な物理エンティティにマッピングすることによって、物理エンティティと加入者ノードとの間のマッピング関係を確立するように構成された第2のマッピングユニットをさらに含み、
複製ユニットは、詳細には、第1の物理エンティティに対応する第3の物理エンティティに、CSNを付加された第1のコミットリドゥレコードをプッシュするように構成され、第1の加入者ノードは、マスタノードと第1の加入者ノードとの間の接続を介して、第1の物理エンティティが属し、マスタノードの物理エンティティである物理エンティティのセットと第1の加入者ノードとの間のマッピング関係、および第1の物理エンティティと第3の物理エンティティとの間のマッピング関係に基づいて、第3の物理エンティティおよび第4の物理エンティティを含む少なくとも2つの物理エンティティであらかじめ設定され、第1のコミットリドゥレコードは、第1の書込み動作のデータをマスタノードから第1の物理エンティティに対応する第1の加入者ノードに複製し、次いで、第1の加入者ノードにより、受信された第1のコミットリドゥレコードを第2の加入者ノードにプッシュすることを介して、第2の加入者ノードに複製するために使用される。
本発明の第5の態様の第4の実装形態では、複製ユニットは、新しい加入者ノードがマスタノードに接続されたとき、マスタノード内の物理エンティティ、および物理エンティティと新しい加入者ノードを含む加入者ノードとの間のマッピング関係が再構成された後、新しい加入者ノードにコミットリドゥレコードを同期させるようにさらに構成される。
本発明の第5の態様の第5の実装形態では、第1のコミットリドゥレコードは、関連する書込み動作が発生した物理エンティティに基づいて、第2の書込み動作が第2の物理エンティティ上で発生したときデバイスによって生成された第2のコミットレコードから分離される。
本発明の第5の態様の第6の実装形態では、第1のコミットレコードおよび第2のコミットレコードは、複製ユニットにより並行して、それぞれ第1の加入者ノードおよび第2の加入者ノードにプッシュされ、その結果、第1のコミットレコードおよび第2のコミットレコードは、それぞれ第1の加入者ノードおよび第2の加入者ノードにより並行して再生され、第2のコミットリドゥレコードは、第2の書込み動作のデータをマスタノードから第2の物理エンティティに対応する第2の加入者ノードに複製し、次いで、第2の加入者ノードにより、受信された第2のコミットリドゥレコードを第1の加入者ノードにプッシュすることを介して、第1の加入者ノードに複製するために使用される。
本発明の第6の態様は、ピアツーピアデータ複製用のデバイスを提供し、デバイスは加入者ノードに位置し、デバイスは、
マスタノード内で書込み動作の順番を示すために使用されるコミットシーケンス番号(CSN)を付加されたコミットリドゥレコードを、マスタノードから受信するように構成された受信ユニットと、
初期化中に0にセットされた加入者ノードのCSNを引いた、コミットリドゥレコードに付加されたCSNの絶対値が1であるとき、加入者ノードのCSNをコミットリドゥレコードに付加されたCSNに更新するように構成されたCSN処理ユニットと、
コミットリドゥレコードを再生して、マスタノード上で発生した書込み動作のデータをマスタノードから、マスタノードとマスタノードに接続された他の加入者ノードとに接続された加入者ノードに複製し、コミットリドゥレコードを他の加入者ノードにプッシュして、マスタノード上で発生した書込み動作のデータを他の加入者ノードに複製するように構成された複製ユニットとを含む。
本発明の第6の態様の第1の実装形態では、CSN処理ユニットは、加入者ノードのCSNを引いた、受信されたコミットリドゥレコードに付加されたCSNの絶対値が1でないとき、受信されたコミットリドゥレコードを保存し、別のコミットリドゥレコードを待つようにさらに構成され、
複製ユニットは、加入者ノードの更新されたCSNを引いた、受信されたコミットリドゥレコードに付加されたCSNの絶対値が1である値に、加入者ノードのCSNが更新された後、コミットリドゥレコードを再生して、マスタノード上で発生した書込み動作のデータをマスタノードから加入者ノードに複製するようにさらに構成される。
本発明の第6の態様の第2の実装形態では、複製ユニットは、すべての他の加入者ノードにプル要求を送信して、マスタノードがダウンし、加入者ノードが新しいマスタノードに選出された後、他の加入者ノード内でコミットリドゥレコードを再生することによって取得された、マスタノード上で発生した書込み動作のすべてのデータを取得するようにさらに構成され、
デバイスは、
加入者ノードが新しいマスタノードとして働くとき、新しいマスタノード内の物理エンティティと新しいマスタノードとして働く加入者ノードではない他の加入者ノードとの間のマッピング関係を再割当てするように構成されたマッピングユニットをさらに含む。
本発明の第6の態様の第3の実装形態では、複製ユニットは、前のマスタノードがダウンし、別の加入者ノードが新しいマスタノードに選出された後、新しいマスタノードによって送信されたプル要求に応答して、加入者ノード内の前のマスタノード上で発生した書込み動作のデータを、新しいマスタノードとして働く加入者ノードに送信するようにさらに構成される。
本発明の第7の態様は、マスタノード切替え用のデバイスを提供し、デバイスは加入者ノードに位置し、デバイスは、
加入者ノードとマスタノードが同じクラスタ内にあり、マスタノードがダウンしたとき、データ同期が終了するか、またはデータ同期用に事前構成された時間期間に到達するまで、その加入者ノードと他の加入者ノードとの間でデータ同期を実行するように構成された同期ユニットと、
複数の加入者ノードの最も高いコミットシーケンス番号(CSN)に基づいて、複数の加入者ノードからその加入者ノードが新しいマスタノードに選出された後、新しいマスタノードに選出されなかった残りの加入者ノードにプル要求を送信するように構成された送信ユニットと、
新しいマスタノードに選出されなかった残りの加入者ノードからデータを受信するように構成された受信ユニットとを含む。
本発明の第7の態様の第1の実装形態では、
加入者ノードが新しいマスタノードとして働くとき、新しいマスタノード内の物理エンティティとその加入者ノードではない他の加入者ノードとの間のマッピング関係を確立するように構成されたマッピングユニットをさらに含み、
同期ユニットは、書込み動作が新しいマスタノード内の物理エンティティ上で発生したとき、マッピング関係に従って、新しいマスタノードと新しいマスタノードに選出されなかった他の加入者ノードとの間のピアツーピアデータ複製を実行するようにさらに構成される。
本発明の第8の態様は、マスタノード切替え用のデバイスを提供し、デバイスは加入者ノードに位置し、デバイスは、
加入者ノードとマスタノードが同じクラスタ内にあり、マスタノードがダウンしたとき、データ同期が終了するか、またはデータ同期用に事前構成された時間期間に到達するまで、その加入者ノードと他の加入者ノードとの間でデータ同期を実行するように構成された同期ユニットと、
他の加入者ノードと一緒に、複数の加入者ノードの最も高いコミットシーケンス番号(CSN)に基づいて、複数の加入者ノードからある加入者ノードを新しいマスタノードに選出するように構成された選出ユニットと、
加入者ノードが新しいマスタノードに選出されなかったとき、新しいマスタノードによって発行されたプル要求を受信するように構成された受信ユニットと、
加入者ノードが新しいマスタノードに選出されなかったとき、新しいマスタノードによって送信されたプル要求に応答して、その加入者ノード内のデータを新しいマスタノードに送信するように構成された送信ユニットとを含む。
本発明の第9の態様は、ピアツーピアデータ複製用のデバイスを提供し、デバイスはマスタノードに位置し、デバイスは、
プロセッサとプロセッサに結合されたメモリとを含み、
プロセッサは、
第1の物理エンティティおよび第2の物理エンティティを含む少なくとも2つの物理エンティティであらかじめ設定され、第1の加入者ノードおよび第2の加入者ノードを含む少なくとも2つの加入者ノードに接続されたマスタノード内の第1の物理エンティティ上で第1の書込み動作が発生したとき、マスタノード内で第1の書込み動作の順番を示すために使用されるコミットシーケンス番号(CSN)を付加された第1のコミットリドゥレコードを生成することと、
物理エンティティと加入者ノードとの間のマッピング関係に基づいて第1の物理エンティティに対応する第1の加入者ノードに、CSNを付加された第1のコミットリドゥレコードをプッシュすることとを行うように構成され、第1のコミットリドゥレコードは、第1の書込み動作のデータをマスタノードから第1の物理エンティティに対応する第1の加入者ノードに複製し、次いで、第1の加入者ノードにより、受信された第1のコミットリドゥレコードを第2の加入者ノードにプッシュすることを介して、第2の加入者ノードに複製するために使用される。
本発明の第9の態様の第1の実装形態では、物理エンティティは、テーブル空間、デバイスファイル、ページ、および/またはパーティションである。
本発明の第9の態様の第2の実装形態では、プロセッサは、
様々な加入者ノードをマスタノードと加入者ノードとの間の様々な接続にマッピングすること、および様々な接続をマスタノード内の各セットが1つまたは複数の物理エンティティを含む物理エンティティの様々なセットにマッピングすることによって、物理エンティティと加入者ノードとの間のマッピング関係を確立することと、
マスタノードと加入者ノードとの間の接続を介して、第1の物理エンティティと第1の加入者ノードとの間のマッピング関係に基づいて第1の物理エンティティに対応する第1の加入者ノードに、CSNを付加された第1のコミットリドゥレコードをプッシュすることとを行うようにさらに構成される。
本発明の第9の態様の第3の実装形態では、プロセッサは、
様々な加入者ノードをマスタノードと加入者ノードとの間の様々な接続にマッピングすること、および様々な接続をマスタノード内の各セットが複数の物理エンティティを含む物理エンティティの様々なセットにマッピングすること、およびさらにマスタノード内の物理エンティティの1つのセットを物理エンティティのそのセットに対応する加入者ノード内の様々な物理エンティティにマッピングすることによって、物理エンティティと加入者ノードとの間のマッピング関係を確立することと、
第1の物理エンティティに対応する第3の物理エンティティに、CSNを付加された第1のコミットリドゥレコードをプッシュすることとを行うようにさらに構成され、第1の加入者ノードは、マスタノードと第1の加入者ノードとの間の接続を介して、第1の物理エンティティが属し、マスタノードの物理エンティティである物理エンティティのセットと第1の加入者ノードとの間のマッピング関係、および第1の物理エンティティと第3の物理エンティティとの間のマッピング関係に基づいて、第3の物理エンティティおよび第4の物理エンティティを含む少なくとも2つの物理エンティティであらかじめ設定される。
本発明の第9の態様の第4の実装形態では、プロセッサは、
新しい加入者ノードがマスタノードに接続されたとき、マスタノード内の物理エンティティ、および物理エンティティと新しい加入者ノードを含む加入者ノードとの間のマッピング関係が再構成された後、新しい加入者ノードにコミットリドゥレコードを同期させることを行うようにさらに構成される。
本発明の第9の態様の第5の実装形態では、第1のコミットリドゥレコードは、関連する書込み動作が発生した物理エンティティに基づいて、第2の書込み動作が第2の物理エンティティ上で発生したときデバイスによって生成された第2のコミットレコードから分離される。
本発明の第9の態様の第6の実装形態では、第1のコミットレコードおよび第2のコミットレコードは、プロセッサにより並行して、それぞれ第1の加入者ノードおよび第2の加入者ノードにプッシュされ、その結果、第1のコミットレコードおよび第2のコミットレコードは、それぞれ第1の加入者ノードおよび第2の加入者ノードにより並行して再生され、第2のコミットリドゥレコードは、第2の書込み動作のデータをマスタノードから第2の物理エンティティに対応する第2の加入者ノードに複製し、次いで、第2の加入者ノードにより、受信された第2のコミットリドゥレコードを第1の加入者ノードにプッシュすることを介して、第1の加入者ノードに複製するために使用される。
本発明の第10の態様は、ピアツーピアデータ複製用のデバイスを提供し、デバイスは加入者ノードに位置し、デバイスは、
プロセッサとプロセッサに結合されたメモリとを含み、
プロセッサは、
マスタノード内で書込み動作の順番を示すために使用されるコミットシーケンス番号(CSN)を付加されたコミットリドゥレコードを、マスタノードから受信することと、
初期化中に0にセットされた加入者ノードのCSNを引いた、コミットリドゥレコードに付加されたCSNの絶対値が1であるとき、加入者ノードのCSNをコミットリドゥレコードに付加されたCSNに更新することと、
コミットリドゥレコードを再生して、マスタノード上で発生した書込み動作のデータをマスタノードから、マスタノードとマスタノードに接続された他の加入者ノードとに接続された加入者ノードに複製することと、
コミットリドゥレコードを他の加入者ノードにプッシュして、マスタノード上で発生した書込み動作のデータを他の加入者ノードに複製することとを行うように構成される。
本発明の第10の態様の第1の実装形態では、プロセッサは、
加入者ノードのCSNを引いた、受信されたコミットリドゥレコードに付加されたCSNの絶対値が1でないとき、受信されたコミットリドゥレコードを保存し、別のコミットリドゥレコードを待つことと、
加入者ノードの更新されたCSNを引いた、受信されたコミットリドゥレコードに付加されたCSNの絶対値が1である値に、加入者ノードのCSNが更新された後、コミットリドゥレコードを再生して、マスタノード上で発生した書込み動作のデータをマスタノードから加入者ノードに複製することとを行うようにさらに構成される。
本発明の第10の態様の第2の実装形態では、プロセッサは、
すべての他の加入者ノードにプル要求を送信して、マスタノードがダウンし、加入者ノードが新しいマスタノードに選出された後、他の加入者ノード内でコミットリドゥレコードを再生することによって取得された、マスタノード上で発生した書込み動作のすべてのデータを取得することと、
加入者ノードが新しいマスタノードとして働くとき、新しいマスタノード内の物理エンティティと新しいマスタノードとして働く加入者ノードではない他の加入者ノードとの間のマッピング関係を再割当てすることとを行うようにさらに構成される。
本発明の第10の態様の第3の実装形態では、プロセッサは、
前のマスタノードがダウンし、別の加入者ノードが新しいマスタノードに選出された後、新しいマスタノードによって送信されたプル要求に応答して、加入者ノード内の前のマスタノード上で発生した書込み動作のデータを、新しいマスタノードとして働く加入者ノードに送信することを行うようにさらに構成される。
本発明の第11の態様は、マスタノード切替え用のデバイスを提供し、デバイスは加入者ノードに位置し、デバイスは、
プロセッサとプロセッサに結合されたメモリとを含み、
プロセッサは、
加入者ノードとマスタノードが同じクラスタ内にあり、マスタノードがダウンしたとき、データ同期が終了するか、またはデータ同期用に事前構成された時間期間に到達するまで、その加入者ノードと他の加入者ノードとの間でデータ同期を実行することと、
複数の加入者ノードの最も高いコミットシーケンス番号(CSN)に基づいて、複数の加入者ノードからその加入者ノードが新しいマスタノードに選出された後、新しいマスタノードに選出されなかった残りの加入者ノードにプル要求を送信することと、
新しいマスタノードに選出されなかった残りの加入者ノードからデータを受信することとを行うように構成される。
本発明の第11の態様の第1の実装形態では、プロセッサは、
加入者ノードが新しいマスタノードとして働くとき、新しいマスタノード内の物理エンティティとその加入者ノードではない他の加入者ノードとの間のマッピング関係を確立することと、
書込み動作が新しいマスタノード内の物理エンティティ上で発生したとき、マッピング関係に従って、新しいマスタノードと新しいマスタノードに選出されなかった他の加入者ノードとの間のピアツーピアデータ複製を実行することとを行うようにさらに構成される。
本発明の第12の態様は、マスタノード切替え用のデバイスを提供し、デバイスは加入者ノードに位置し、デバイスは、
プロセッサとプロセッサに結合されたメモリとを含み、
プロセッサは、
加入者ノードとマスタノードが同じクラスタ内にあり、マスタノードがダウンしたとき、データ同期が終了するか、またはデータ同期用に事前構成された時間期間に到達するまで、その加入者ノードと他の加入者ノードとの間でデータ同期を実行することと、
他の加入者ノードと一緒に、複数の加入者ノードの最も高いコミットシーケンス番号(CSN)に基づいて、複数の加入者ノードからある加入者ノードを新しいマスタノードに選出することと、
加入者ノードが新しいマスタノードに選出されなかったとき、新しいマスタノードによって発行されたプル要求を受信することと、
加入者ノードが新しいマスタノードに選出されなかったとき、新しいマスタノードによって送信されたプル要求に応答して、その加入者ノード内のデータを新しいマスタノードに送信することとを行うように構成される。
本発明の第13の態様は、マスタノードと、第1の加入者ノードおよび第2の加入者ノードを含む少なくとも2つの加入者ノードとを含むシングルマスタクラスタシステムを提供し、
マスタノードに、第5の態様、第9の態様、およびそれらの実装形態のうちのいずれか1つによる、ピアツーピアデータ複製用のデバイスが位置し、
加入者ノードの各々に、第6の態様、第10の態様、およびそれらの実装形態のうちのいずれか1つによる、ピアツーピアデータ複製用のデバイスが位置する。
本発明の第14の態様は、マスタノードと少なくとも2つの加入者ノードとを含むシングルマスタクラスタシステムを提供し、
加入者ノードの各々に、第7の態様、第11の態様、およびそれらの実装形態のうちのいずれか1つによる、マスタノード切替え用のデバイス、ならびに、第8の態様、第12の態様、およびそれらの実装形態のうちのいずれか1つによる、マスタノード切替え用のデバイスの両方が位置する。
本発明の実施形態によって提供されたピアツーピアデータ複製用の方法、デバイス、およびシステムによれば、マスタノードは、書込み動作がマスタノード上で発生したときに生成されたコミットリドゥレコードを複数のコミットリドゥレコードに分離し、複数のコミットリドゥレコードを様々な加入者ノードにプッシュし、複数のコミットリドゥレコードの各々はマスタノードにより1つの加入者ノードのみにプッシュされ、次いで、コミットリドゥレコードを受信する1つの加入者ノードのみによってプッシュすることを介して他の加入者ノードにプッシュされ、それにより、マスタノードと加入者ノードとの間の伝送が低減され、こうして、複製クラスタ内のマスタノードから複製ボトルネックが軽減される。
本発明の実施形態によって提供されたマスタノード切替え用の方法、デバイス、およびシステムによれば、マスタノードがダウンしたとき、加入者ノードは、加入者ノードを含むクラスタを迅速に回復させ、作業に復帰させる能力を有する。
本発明の実施形態および従来技術における技術的解決策をより明確に説明するために、実施形態および従来技術で必要とされる添付図面が以下で簡潔に説明される。添付図面が本発明のいくつかの実施形態にすぎないことは明白であり、当業者は、創造的な努力なしに添付図面に従って他の図面を取得することができる。
従来技術におけるシングルマスタ複製トポロジの図である。 図1に示されたシングルマスタ複製トポロジによる、複製の従来の実装形態の概略図である。 本発明の一実施形態による、ピアツーピアデータ複製用の方法のフローチャートである。 本発明の一実施形態による、ピアツーピアデータ複製用の方法を実装するために使用される、シングルマスタ複製トポロジの一例の図である。 本発明の一実施形態による、ピアツーピアデータ複製用の方法を実装するために使用される、シングルマスタ複製トポロジの別の例の図である。 本発明の一実施形態による、ピアツーピアデータ複製用の方法を実装するために使用される、シングルマスタ複製トポロジの別の例の図である。 図4cに示されたシングルマスタ複製トポロジを構成する概略フローを示す図である。 本発明の一実施形態による、ピアツーピアデータ複製用の方法を実装するために使用される、シングルマスタ複製トポロジの別の例の図である。 本発明の一実施形態による、マスタノードの同期動作の一例の概略フローである。 本発明の一実施形態による、加入者ノードの動作の一例の概略フローである。 本発明の一実施形態による、加入者ノードの動作の別の例の概略フローである。 P2Pネットワークの簡単なシナリオを示す図である。 従来技術による、データ利用可能性の一例の概略図である。 本発明の一実施形態による、マスタノードがダウンしたときのピアツーピア複製用の方法の概略フローである。 本発明の一実施形態によるピアツーピアデータ複製用の方法が適用可能なシナリオの一例の概略構造図である。 本発明の一実施形態による、マスタノード切替え用の方法の概略フローである。 本発明の一実施形態による、マスタノード切替え用の別の方法の概略フローである。 本発明の一実施形態による、ピアツーピアデータ複製用のデバイスの概略構造図である。 本発明の別の実施形態による、ピアツーピアデータ複製用のデバイスの概略構造図である。 本発明の別の実施形態による、ピアツーピアデータ複製用のデバイスの概略構造図である。 本発明の別の実施形態による、ピアツーピアデータ複製用のデバイスの概略構造図である。 本発明の別の実施形態による、ピアツーピアデータ複製用のデバイスの概略構造図である。 本発明の別の実施形態による、ピアツーピアデータ複製用のデバイスの概略構造図である。 本発明の別の実施形態による、ピアツーピアデータ複製用のデバイスの概略構造図である。 本発明の一実施形態による、マスタノード切替え用のデバイスの概略構造図である。 本発明の別の実施形態による、マスタノード切替え用のデバイスの概略構造図である。 本発明の一実施形態による、マスタノード切替え用のデバイスの概略構造図である。 本発明の一実施形態による、マスタノード切替え用のデバイスの概略構造図である。 本発明の一実施形態による、マスタノード切替え用のデバイスの概略構造図である。 本発明の一実施形態による、シングルマスタクラスタシステムの概略構造図である。 本発明の別の実施形態による、シングルマスタクラスタシステムの概略構造図である。
本発明の実施形態における技術的解決策は、本発明の実施形態における添付図面を参照して、以下で明確かつ十分に記載される。明らかに、記載されるべき実施形態は、本発明の実施形態のすべてではなく一部にすぎない。本発明の実施形態に基づいて、創造的な努力なしに当業者によって取得されるすべての他の実施形態は、本発明の保護範囲に入るべきである。
本発明の実施形態は、ピアツーピアデータ複製用の方法を提供する。図3は、本発明の一実施形態による、ピアツーピアデータ複製用の方法のフローチャートである。図3に示されたように、方法は以下のステップを含む。
301.マスタノードは、第1の書込み動作がマスタノード内の第1の物理エンティティ上で発生したとき、コミットシーケンス番号(CSN)を付加された第1のコミットリドゥレコードを生成し、マスタノードは、第1の物理エンティティおよび第2の物理エンティティを含む少なくとも2つの物理エンティティであらかじめ設定され、マスタノードは、第1の加入者ノードおよび第2の加入者ノードを含む少なくとも2つの加入者ノードに接続され、第1のコミットリドゥレコード内に付加されたCSNは、マスタノード内で第1の書込み動作の順番を示すために使用される。
302.マスタノードは、物理エンティティと加入者ノードとの間のマッピング関係に基づいて第1の物理エンティティに対応する第1の加入者ノードに、CSNを付加された第1のコミットリドゥレコードをプッシュし、第1のコミットリドゥレコードは、第1の書込み動作のデータをマスタノードから第1の物理エンティティに対応する第1の加入者ノードに複製し、次いで、第1の加入者ノードにより、受信された第1のコミットリドゥレコードを第2の加入者ノードにプッシュすることを介して、第2の加入者ノードに複製するために使用される。
本明細書では、マスタノードはマスタデータベースを含むノードであり、加入者ノードは加入者データベースを含むノードであり、物理エンティティは、テーブル空間、デバイスファイル、ページ、および/またはパーティションであり得る。以下の説明を容易にするために、本発明の実施形態は、テーブル空間を物理エンティティの一例として採用することによって記載される。
図4aは、本発明の一実施形態による、ピアツーピアデータ複製用の方法を実装するために使用される、シングルマスタ複製トポロジの一例である。図4aに示されたように、シングルマスタ複製トポロジでは、マスタノードは加入者ノード1および加入者ノード2に接続され、加入者ノード1は加入者ノード2に接続され、マスタノードはマスタデータベースを含み、加入者ノード1は加入者データベースを含み、加入者ノード2は加入者データベースを含む。その上、マスタノードは、2つの加入者ノードを2つの接続にマッピングするように構成される。詳細には、マスタノードは、加入者ノード1を接続1にマッピングし、加入者ノード2を接続2にマッピングする。次いで、マスタノードは、2つの接続をマスタノード内の2つのテーブル空間にマッピングする。詳細には、マスタノードは、接続1をテーブル空間1にマッピングし、接続2をテーブル空間2にマッピングする。
図4bは、本発明の一実施形態による、ピアツーピアデータ複製用の方法を実装するために使用される、シングルマスタ複製トポロジの別の例である。図4bに示されたように、シングルマスタ複製トポロジでは、マスタノードは加入者ノード1および加入者ノード2に接続され、加入者ノード1は加入者ノード2に接続され、マスタノードはマスタデータベースを含み、加入者ノード1は加入者データベースを含み、加入者ノード2は加入者データベースを含む。その上、マスタノードは、2つの加入者ノードを接続1および接続2などの2つの接続にマッピングするように構成され、次いで、マスタノードは、2つの接続をテーブル空間の2つのセットにマッピングし、言い換えれば、1つの接続はマスタノード内のテーブル空間の1つのセットにマッピングされ、他の1つの接続はマスタノード内のテーブル空間の他の1つのセットにマッピングされ、テーブル空間の各セットは、テーブル空間1、テーブル空間2、およびテーブル空間3などの複数のテーブル空間を含む。さらに、マスタノードは、マスタノード内のテーブル空間の2つのセットの各々の中のテーブル空間を、関連する加入者ノード内のテーブル空間、ページ、デバイスファイル、パーティション、およびセグメントなどの任意の物理エンティティにマッピングする場合もある。たとえば、マスタノードは、加入者ノード1をマスタノードと加入者ノード1との間の接続1にマッピングし、マスタノードと加入者ノード1との間の接続1をマスタノード内のテーブル空間1、テーブル空間2、およびテーブル空間3を含むテーブル空間の第1のセットにマッピングし、次いで、マスタノード内のテーブル空間1を加入者ノード1内のテーブル空間1'にマッピングし、マスタノード内のテーブル空間2を加入者ノード1内のテーブル空間2'にマッピングし、マスタノード内のテーブル空間3を加入者ノード1内のテーブル空間3'にマッピングする。
図4cは、本発明の一実施形態による、ピアツーピアデータ複製用の方法を実装するために使用される、シングルマスタ複製トポロジの別の例である。図4cに示されたように、シングルマスタ複製トポロジでは、マスタノードは加入者ノード1および加入者ノード2に接続され、加入者ノード1は加入者ノード2に接続され、マスタノードはマスタデータベースを含み、加入者ノード1は加入者データベースを含み、加入者ノード2は加入者データベースを含む。その上、マスタノードは、2つの加入者ノードを接続1および接続2などの2つの接続にマッピングするように構成され、次いで、マスタノードは、2つの接続をマスタノード内のテーブル空間の2つのセットにマッピングし、詳細には、マスタノードは、テーブル空間1およびテーブル空間2を含むテーブル空間の第1のセットをマスタノードと加入者ノード1との間の接続1にマッピングし、テーブル空間3を含むテーブル空間の第2のセットをマスタノードと加入者ノード2との間の接続2にマッピングする。さらに、加入者ノード1と加入者ノード2との間のデータ複製を実現するために、加入者ノード1と加入者ノード2との間の接続3および接続4もそれぞれ確立される必要があり、接続3は加入者ノード2から加入者ノード1にデータを複製するために使用され、すなわち、接続3は加入者ノード2内のテーブル空間3'にもマッピングされ、詳細には、加入者ノード2は加入者ノード1を加入者ノード2と加入者ノード1との間の接続3にマッピングするように構成され、次いで、加入者ノード2は接続3を加入者ノード2内のテーブル空間の1つのセットにマッピングし、詳細には、加入者ノード2はテーブル空間3'を加入者ノード2と加入者ノード1との間の接続3にマッピングし、詳細には、テーブル空間3'(その中のデータはテーブル空間3の中のデータと同じである)からテーブル空間6にデータを複製するために使用され、接続4は加入者ノード1から加入者ノード2にデータを複製するために使用され、すなわち、接続4は加入者ノード1内のテーブル空間1'およびテーブル空間2'にもマッピングされ、詳細には、加入者ノード1は加入者ノード2を加入者ノード1と加入者ノード2との間の接続4にマッピングするように構成され、次いで、加入者ノード1は接続4を加入者ノード1内のテーブル空間1'およびテーブル空間2'を含むテーブル空間の1つのセットにマッピングし、さらに、加入者ノード1内のテーブル空間1'は加入者ノード2内のテーブル空間4にマッピングされ、加入者ノード1内のテーブル空間2'は加入者ノード2内のテーブル空間5にマッピングされ、詳細には、テーブル空間1'およびテーブル空間2'(それらの中のデータはテーブル空間1およびテーブル空間2の中のデータと同じである)から、それぞれテーブル空間4およびテーブル空間5にデータを複製するために使用される。
図5は、図4cに示されたシングルマスタ複製トポロジを構成する概略フローを示す。図5に示されたように、シングルマスタ複製トポロジを構成するフローは、以下のステップを含む場合がある。
501.マスタノードを構成し、データベースを作成する。
502.マスタノード内に様々なテーブル空間を作成し、たとえば、3つのテーブル空間が作成される。
503.加入者ノード1を構成する。
504.マスタノードと加入者ノード1との間の接続を作成し、これは以下でConn1と呼ばれ、こうして、接続1は図4cに示されたように作成される。
505.マスタノード内の関係、すなわちConn1::Table Space 1, Table Space 2を構成し、こうして、接続1は図4cに示されたようにテーブル空間1およびテーブル空間2にマッピングされる。
506.加入者ノード2を構成する。
507.マスタノードと加入者ノード2との間の接続を作成し、これは以下でConn2と呼ばれ、こうして、接続2は図4cに示されたように作成される。
508.マスタノード内の関係、すなわちConn2::Table Space 3を構成し、こうして、接続2は図4cに示されたようにテーブル空間3にマッピングされる。
509.加入者ノード1と加入者ノード2との間の2つの接続を作成し、これは以下でそれぞれConn3およびConn4と呼ばれ、こうして、接続3および接続4は図4cに示されたように作成される。
510.2つの加入者ノードの各々の中の関係、すなわちConn3::Table Space 3、Conn4::Table Space 1, Table Space 2を構成する。こうして、図4cに示されたように、接続3はテーブル空間3にマッピングされ、接続4はテーブル空間1およびテーブル空間2にマッピングされる。したがって、加入者ノード2は、テーブル空間3から取得されたデータを、接続3を介して加入者ノード1に複製することができ、加入者ノード1は、テーブル空間1およびテーブル空間2から取得されたデータを、接続4を介して加入者ノード2に複製することができる。
ステップ503〜505とステップ506〜508との間に特定の実行順序は存在せず、たとえば、ステップ506〜508はステップ503〜505の前に実行される場合があり、その逆もあり得ることに留意されたい。
上記の手順に従って、図4に示されたトポロジが取得される。図4に示されたトポロジを一例として採用することにより、本発明の実施形態によって提供されたピアツーピアデータ複製用の方法が以下に記載される。
データベース用語では、トランザクションは、一般に2つのコミットの間で行われる作業である。すなわち、トランザクションは、DBがコミットを実行したとき終了する。それゆえ、トランザクションの順番は、トランザクションのコミットを辿ることによって維持することができる。本発明の実施形態によって提供されたピアツーピアデータ複製用の方法では、増加する一意の時間ベースの識別子がコミットに付加され、コミットシーケンス番号(CSN)と呼ばれる。たとえば、CSN=1,2,3,……,Nであり、ここでNはマスタノード内の書込み動作の順番であり、すなわち、マスタノードが1番目の時刻に書込み動作を行ったとき、生成されたコミットリドゥレコードに付加されたCSNは1であり、マスタノードがN番目の時刻に書込み動作を行ったとき、生成されたコミットリドゥレコードに付加されたCSNはNである。本明細書では、書込み動作は、UPDATE、INSERT、およびDELETEなどのデータ修正動作であり得る。
トランザクションは複数のリドゥレコードを生成することができる。リドゥレコードは動作に基づいた複数のタイプのレコードであり、すなわちリドゥレコードは、「Insert Redo」または「Update Redo」または「Commit Redo」であり得る。トランザクションがコミットされたとき、タイプコミットのリドゥレコードがそのトランザクション用に生成される。トランザクションを複数の異なるテーブル空間上で実行することができても、コミット動作はノードレベルで順序付けられる。コミット動作に対応するリドゥレコードはコミットリドゥレコードと呼ばれ、それはこのコミット動作用に生成されたCSNを含み、CSNはこのノード内のコミット動作の順番を示す。詳細には、包括的でノードの範囲内にあるCSNが順次生成され、トランザクションが実行されたテーブル空間とは無関係に、コミット動作に割り当てられる。したがって、コミットリドゥレコード内のCSNを調査することによって、トランザクションコミットの順序が知られる。データの整合性を維持するために、すべてのコミットリドゥレコードは、ノード内のそれらのCSNと同じ順序で再生される。
図6は、本発明の一実施形態による、ピアツーピアデータ複製用の方法を実装するために使用される、シングルマスタ複製トポロジの別の例である。図6に示されたように、マスタノードは、加入者ノード1、加入者ノード2、加入者ノード3、および加入者ノード4に接続する。図6に示されたシングルマスタ複製トポロジでは、マスタノードは、マスタノードのコミットリドゥレコードを、たとえばパート1のコミットリドゥレコード、パート2のコミットリドゥレコード、パート3のコミットリドゥレコード、およびパート4のコミットリドゥレコードを含む4つのパートに区分化し、マスタノードは、コミットリドゥレコードの各パートを1つの加入者ノードと同期させ、その加入者ノードは順に他の加入者ノードと同期させる。たとえば、図6に示されたように、マスタノードは、パート1のコミットリドゥレコードを加入者ノード1と同期させ、パート2のコミットリドゥレコードを加入者ノード2と同期させ、パート3のコミットリドゥレコードを加入者ノード3と同期させ、パート4のコミットリドゥレコードを加入者ノード4と同期させ、コミットリドゥレコードの各パートは、並行して異なる加入者ノードで再生され、加入者ノード1によって取得されたパート1のコミットリドゥレコード、加入者ノード2によって取得されたパート2のコミットリドゥレコード、加入者ノード3によって取得されたパート3のコミットリドゥレコード、および加入者ノード4によって取得されたパート4のコミットリドゥレコードのすべては、4つの加入者ノードの間で同期される。本明細書では、マスタノードによって実行される区分化は、レコードの物理ストレージの論理に基づき、すなわち、テーブル空間、デバイスファイル、ページ、およびパーティションなどの物理エンティティに基づく場合がある。
図7は、本発明の一実施形態による、マスタノードの同期動作の一例の概略フローである。図7に示されたように、マスタノードの同期動作は以下のステップを含む。
701.動作がマスタノード上で発生する。
702.マスタノードは、動作についてのリドゥレコードを生成する。
703.マスタノードは、リドゥレコードがコミットリドゥレコードであるかどうかを判断し、はいの場合、手順はステップ704に進み、いいえの場合、手順はステップ705に進む。
704.マスタノードは、コミットリドゥレコード用のCSNを生成し、次いで、手順はステップ705に進む。
705.マスタノードは、構成されたマッピング関係に基づいてマスタノードによって決定された関連する加入者ノードに、生成されたリドゥレコードをプッシュする。
図5に従って作成されたマッピング関係を一例として採用すると、書込み動作がテーブル空間1またはテーブル空間2で発生した場合、マスタノードはコミットリドゥレコードをConn1上にプッシュし、すなわちコミットリドゥレコードを加入者ノード1にプッシュし、書込み動作がテーブル空間3で発生した場合、マスタノードはコミットリドゥレコードをConn2上にプッシュし、すなわちコミットリドゥレコードを加入者ノード2にプッシュする。
マスタノードがコミットリドゥレコードを対応する接続上にプッシュした後、加入者ノードは、コミットリドゥレコードを受信し、受信されたコミットリドゥレコードからコミットリドゥレコードに付加されたCSNを取得する。図8は、本発明の一実施形態による、加入者ノードの動作の一例の概略フローである。図8に示されたように、加入者ノードの同期動作は以下のステップを含む。
801.加入者ノードは、マスタノードからリドゥレコードを受信する。
802.加入者ノードは、受信されたリドゥレコードがコミットリドゥレコードであるかどうかを判断し、はいの場合、手順はステップ803に進み、いいえの場合、手順はステップ806に進む。
803.リドゥレコードがコミットリドゥレコードであるとき、加入者ノードは、加入者ノード自体のCSNが「コミットリドゥレコードから取得されたCSN-1」に等しいかどうかを確認し、はいの場合、手順はステップ804に進み、いいえの場合、手順はステップ805に進む。
804.加入者ノードは、加入者ノード自体のCSNを1だけ増加させ、すなわち、更新されたCSNがコミットリドゥレコードから取得されたCSNと等しくなり、CSN変更イベントを生成し、次いで、手順はステップ806に進む。
805.加入者ノードは、他のコミットリドゥレコードを待ち、CSN変更イベントを待つ。
詳細には、加入者ノード自体のCSNとコミットリドゥレコードから取得されたCSNとの間の差分が1でないとき、加入者ノードは、コミットリドゥレコードを再生せず、加入者ノード自体のCSNがコミットリドゥレコードから取得されたCSNよりも1小さくなるのを待つ。より詳細には、加入者ノードは、必要なコミットが非常に簡単な方法であると判断した場合、すべての必要なコミットを受信するまで待つ。加入者ノードがCSN100を有するコミットリドゥレコードを受信しており、このコミットリドゥレコードを再生し、加入者ノード自体のCSNを100に更新すると仮定する。そこで、加入者ノードがCSN105を有する別のコミットリドゥレコードを受信した場合、加入者ノードは、以下の確認を実行して、このコミットリドゥレコードを再生できるかどうかを判定する。「コミットリドゥレコードから取得されたCSN」-「加入者ノードのCSN」=1。この例では、「コミットリドゥレコードから取得されたCSN」-「加入者ノードのCSN」=105-100=5であり、それゆえ、加入者ノードはこのコミットリドゥレコードを再生することができず、CSN105を有するコミットリドゥレコードを再生できる前に、CSN101、102、103、および104を有するコミットリドゥレコードを待つ必要がある。ここで、CSN101、102、103、および104を有するコミットリドゥレコードは、「必要なコミットリドゥレコード」と呼ばれる。すべての必要なコミットリドゥレコードを受信した後、コミットリドゥレコードを再生することに関する詳細は図8に示され、以下に記載される。
806.加入者ノードはリドゥレコードを実行し、すなわち、加入者ノードはリドゥレコードを再生し、次いで、手順はステップ807に進む。
807.加入者はリドゥレコードを他の加入者にプッシュする。
図5に従って作成されたマッピング関係を一例として採用すると、書込み動作がテーブル空間1またはテーブル空間2で発生した場合、マスタノードはコミットリドゥレコードをConn1上にプッシュし、加入者ノード1はコミットリドゥレコードを再生し、次いでコミットリドゥレコードを加入者ノード2にプッシュし、書込み動作がテーブル空間3で発生した場合、マスタノードはコミットリドゥレコードをConn2上にプッシュし、加入者ノード2はコミットリドゥレコードを再生し、次いでコミットリドゥレコードを加入者ノード1にプッシュする。
図9は、本発明の一実施形態による、加入者ノードの動作の別の例の概略フローである。図9に示されたように、加入者ノードの同期動作は以下のステップを含む。
901.加入者ノードはCSN変更イベントを受信する。
902.加入者ノードは記憶されたコミットリドゥレコードを読み取る。
903.加入者ノードは、加入者ノード自体のCSNが「コミットリドゥレコードから取得されたCSN-1」に等しいかどうかを確認し、はいの場合、手順はステップ904に進み、いいえの場合、手順はステップ905に進む。
904.加入者ノードは、加入者ノード自体のCSNを1だけ増加させ、すなわち、更新されたCSNがコミットリドゥレコードから取得されたCSNと等しくなり、CSN変更イベントを生成し、次いで、手順はステップ906に進む。
905.加入者ノードは、他のコミットリドゥレコードを待ち、CSN変更イベントを待つ。
906.加入者ノードはリドゥレコードを実行し、すなわち、加入者ノードはリドゥレコードを再生し、次いで、手順はステップ907に進む。
907.加入者はリドゥレコードを他の加入者にプッシュする。
図5に従って作成されたマッピング関係を一例として採用すると、書込み動作がテーブル空間1またはテーブル空間2で発生した場合、マスタノードはコミットリドゥレコードをConn1上にプッシュし、加入者ノード1はコミットリドゥレコードを再生し、次いでコミットリドゥレコードを加入者ノード2にプッシュし、書込み動作がテーブル空間3で発生した場合、マスタノードはコミットリドゥレコードをConn2上にプッシュし、加入者ノード2はコミットリドゥレコードを再生し、次いでコミットリドゥレコードを加入者ノード1にプッシュする。
本発明の実施形態によって提供されたピアツーピアデータ複製用の方法によれば、マスタノードは、書込み動作がマスタノード上で発生したときに生成されたコミットリドゥレコードを複数のコミットリドゥレコードに分離し、複数のコミットリドゥレコードを様々な加入者ノードにプッシュし、複数のコミットリドゥレコードの各々はマスタノードにより1つの加入者ノードのみにプッシュされ、次いで、コミットリドゥレコードを受信する1つの加入者ノードのみによってプッシュすることを介して他の加入者ノードにプッシュされ、それにより、マスタノードと加入者ノードとの間の伝送が低減され、こうして、複製クラスタ内のマスタノードから複製ボトルネックが軽減される。
その上、図1および図2に示された従来技術と比較すると、以下の有益な効果および利点a)、b)、c)、d)、およびe)も、本発明の実施形態によって提供されたピアツーピアデータ複製用の方法によって実現することができる。
a)マルチ加入者シングルマスタの複製で、マスタのパフォーマンスは劇的に向上する。たとえば、2つの加入者クラスタの場合、マスタのパフォーマンスは約50%向上する。
b)多くの場合、マルチマスタソリューションは、確定的で高いパフォーマンスのシングルマスタソリューションに変換することができる。たとえば、クラスタが20%の書込み負荷と80%の読取り負荷を有するケースを考える。理想的なトポロジは、1つの書込みノードと4つの読取りノードのはずである。しかし、実際には、4つの加入者にデータを配信するオーバーヘッドのせいで、マスタ(単一の書込みノード)はほぼ50%活用が不十分であった。これは、マルチマスタソリューション(2つのマスタと4つの加入者)を使用するように強制されるシナリオをもたらす。しかし、P2Pソリューションを使用することによって、このオーバーヘッドを低減することができ、ソリューションはシングルマスタのままであり得る。
c)ネットワーク上の遅延が減少し、図10に記載された簡単なシナリオでは、遅延は50%低減され、詳細には、図10に示されたように、マスタノード側にあるルータと加入者ノード側にあるルータとの間の伝送レートは100Mbpsであり、2つの加入者ノード間の伝送レートは1Gbpsであり、したがって、マスタノードと加入者ノードとの間の複製によってもたらされる遅延と比較して、2つの加入者ノード間の複製によってもたらされる遅延は割愛することができる。本発明の実施形態によって提供されたピアツーピアデータ複製用の方法によれば、マスタのデータは加入者ノードに1度だけ送信されなければならず(データの一部は一方の加入者ノードに送信され、データの残りの部分は他方の加入者ノードに送信される)、一方、従来技術におけるピアツーピアデータ複製用の方法によれば、マスタのデータは2度送信されなければならず、こうして、遅延は50%低減される。
d)データの利用可能性は、1つのマスタノードと複数の加入者ノードとを含むクラスタで増加する。それは、常にシングルマスタのシリアル複製以上である。また、いくつかの重要なデータの場合、マルチレベルの優先順位づけを行うことができる。
この有益な効果をより明確に説明するために、次のように特定の例を採用する。図11は、従来技術による、データ利用可能性問題の一例の概略図である。図11に示されたシナリオでは、マスタノードは、「4ユニットのデータ」を加入者ノード1および加入者ノード2に複製している。加入者ノード1は、ユニット1、ユニット2、およびユニット3を含む3ユニットのデータを消費しており、加入者ノード2は、ユニット1およびユニット2を含む2ユニットのデータを消費している。1つのノードにおけるデータの1つのコピーの存在を100%の利用可能性として考え、コピーが2つのノードに存在する場合200%を有し、などなどと考えるとき、データの様々なユニットについての利用可能性は、ユニット1の利用可能性=300%、ユニット2の利用可能性=300%、ユニット3の利用可能性=200%、ユニット4の利用可能性=100%である。したがって、マスタノードがこの時点でダウンした場合、「ユニット4」は失われる。従来技術は「データ利用可能性」の問題を抱えていることを理解することができる。所与の時点で、加入者ノードがマスタノードに遅れている場合、遅れは常に同様のデータで起こり得る。したがって、この場合、1つのマスタノードと複数の加入者ノードとを含むクラスタ内のデータの利用可能性は、200%よりも小さい。
しかしながら、ネットワーク内のデータのより高い利用可能性は、本発明の実施形態によって提供されたピアツーピアデータ複製用の方法に従って保証することができる。
e)ピアツーピアクラスタソリューションは、コストがかかる2フェーズコミットを使用しないACID特性を提案する。
さらに、本発明の実施形態によるピアツーピアデータ複製用の方法では、新しい加入者ノードがクラスタに追加されたとき、新しい加入者ノード、マスタノード、およびすべての他の関連する加入者ノードは、その状況を反映するように再構成される。この再構成の後、マスタノードは、最後のコミットリドゥ結果が関連する加入者ノードにフラッシュされた後、トランザクションログの同期を開始する。
さらに、本発明の実施形態によるピアツーピアデータ複製用の方法では、マスタがクラッシュするか、またはネットワークから取り出された場合、クラスタが再同期することを許可される時間期間が存在する。クラスタは全体としていかなる加入者ノードよりも多くのデータを含んでいるので、このステップは必要である。この同期を完了することを永久に待つことを回避するために、ピアノードの間のデータ同期用の時間期間は、システムで事前構成される。この時間期間の間のピアノードのデータ同期は、同期のフェーズIと呼ばれる。ピアノードのデータが同期された後、またはピアノードの間のデータ同期用の事前構成された時間期間が過ぎた後のいずれかで、同期のフェーズIは完了する。
次いで、最も高いCSNを有する加入者ノードをマスタノードに選出する。異なるクラスタ管理トポロジにおいてマスタノードを選出する詳細は異なる場合がある。たとえば、2つの種類のクラスタ管理トポロジが存在する場合がある。(トポロジ1と呼ばれる場合がある)1つの種類のトポロジでは、中央クラスタ管理者ノードが存在する。この中央クラスタ管理者ノードは、クラスタ内のすべての他のノードへのネットワーク接続を有する。これらのネットワーク接続を介して、クラスタ管理者は各ノードのCSNを取得し、次いで、最も高いCSNを有するノードをマスタノードにする。(トポロジ2と呼ばれる場合がある)別の種類のトポロジでは、中央クラスタ管理者ノードは存在しないが、各データノードがすべての他のノードに関する情報を有する。したがって、このトポロジでは、すべてのノードは、どのノードが最も高いCSNを有するかを知る。
次いで、新しいマスタノードは、すべての加入者ノードにプル要求を発行して、加入者ノードが新しいマスタノードにデータをプッシュすることを可能にし、こうして、クラスタ内のすべてのデータは、新しいマスタノードによって取得することができる。この時間期間は、同期のフェーズIIと呼ばれる。この時間期間の間、すべての加入者ノードは、自分のデータを新しいマスタノードにプッシュするように試みる。同期のフェーズIIが終了すると、新しいマスタノード、および新しいマスタノードと同じCSNを有するすべての加入者ノードは、動作可能である。マスタは、次いで、構成により接続マッピングを再割当てし、クラスタは動作可能である。
詳細には、図12は、本発明の一実施形態による、マスタノードがダウンしたときのピアツーピア複製用の方法の概略フローである。図12に示されたように、マスタノードがダウンしたとき、以下のステップが実行される。
1201.すべての加入者ノードはマスタノードがダウンしたことを検出し、詳細には、加入者ノードは多くの異なる方法を介してマスタノードがダウンしたことを検出する場合があり、たとえば、加入者ノードは、マスタノードがダウンしたことを示す通知を受信すると、マスタノードがダウンしたことを検出する場合があり、その通知は、マスタノードによって送信される場合があるか、またはマスタノードの状態を監視するために使用されるデバイスによって送信される場合もあり、別の例では、加入者ノードは、加入者ノードがハートビートメッセージなどのメッセージを送信した後、ハートビート応答メッセージなどの応答メッセージが受信されなかったとき、マスタノードがダウンしたことを検出する場合がある。
1202.すべての加入者ノードは、それら自体の間のデータ同期を実行し、同期のフェーズI用の事前構成された時間期間のタイムアウトを待つ。
1203.同期のフェーズIが完了した後、加入者ノードは、複数の加入者ノードの最も高いCSNに基づいて、新しいマスタノードを選出する。
1204.新しいマスタノードは、すべての加入者ノードにプル要求を発行する。
1205.加入者ノードは、新しいマスタノードにデータを送信するだけで、それら自体の間を同期しない(同期のフェーズII)。
1206.同期のフェーズII用の事前構成された時間期間が過ぎるか、またはすべての加入者ノードがフェーズIIの同期を終了したとき、マスタノード、およびマスタノードと同じCSNを有するすべての加入者ノードは動作可能であり、マスタは接続マッピングを再割当てする。
すべてのステップ1201〜1206の間、マスタノードおよびすべての加入者ノードを含むクラスタはダウンしており、どのノードもクライアントとして働くことができない。ステップ1206の後、新しいマスタノード、およびそのマスタノードと同じCSNを有するすべての加入者ノードを含むクラスタは、回復し、作業に復帰する。
本発明の実施形態によって提供されたピアツーピアデータ複製用の方法によれば、マスタノードがダウンしたとき、加入者ノードは、同期ウィンドウを作成し、それにより加入者ノードを含むクラスタを迅速に回復させ、作業に復帰させる能力を有する。
さらに、本発明の別の実施形態によるピアツーピアデータ複製用の方法では、マスタノードおよび加入者ノードは構成される必要がない。マスタノードおよび加入者ノードは知能が高く、それら自体の間の同期の配信を決定することができる。
基本的な実装形態では、ノード(マスタノードまたは加入者ノード)がマスタノードおよび複数の加入者ノードを含むクラスタに追加されたときはいつでも、マスタノードおよび加入者ノードは、どのテーブル空間がどのノードに属するかを伝えるために、ユーザによって構成されなければならない。同様に、テーブル空間が追加されたとき、ユーザは、そのテーブル空間がどのノードに属するかを伝えるために、マスタノードおよび加入者ノードを構成しなければならない。
現在の実施形態では、マスタノードは、知能が高く作られて、新しいテーブル空間が作成されたとき、ノードをテーブル空間に自動的に割り当てることができる。これは、戦略のうちのいずれによっても行うことができ、戦略についていくつかの例がここで与えられる。
1.ラウンドロビン方式で。マスタノードは、各加入者ノードに付加されたテーブル空間の数のカウントを保持し、次いで、このカウントに基づいて新しいテーブル空間を割り当てる。
2.負荷分散方式で。マスタノードは、各加入者ノードに流れるリドゥトラフィックを追跡する。これに基づいて、マスタノードは、最も少ない負荷の加入者ノードを選択し、この加入者ノードにテーブル空間を割り当てる。
同様に、新しい加入者ノードがクラスタに追加されたとき、マスタノードは、数個のテーブル空間の所有権をこの新しい加入者ノードに自動的に移動させることができる。マスタノードは、任意のポリシーを使用することができ、ポリシーについていくつかの例がここで与えられる。
1.各既存の加入者モードから等しい数のテーブル空間を移動させ、その結果、テーブル空間の割当て後、各加入者ノードは、おおよそ同じ数のテーブル空間の所有権を有する。
2.新しい加入者ノードに最も近い複製加入者ノードからテーブル空間の所有権を移動させ、新しい加入者ノードに最も近い加入者ノードは、トレースルートに基づいて、ネットワークデータパケットのホップ統計データを使用することによって、容易に特定することができる。
本発明の実施形態によって提供されたピアツーピアデータ複製用の方法によれば、新しいノードを追加すると、マスタノードは、物理エンティティを割り当て、この物理エンティティへの複製を開始する弾力性を有する。
本発明の実施形態によるピアツーピアデータ複製用の方法は、1つまたは複数のマスタノードおよび加入者ノードを含む任意のシナリオに適用可能である。図13は、本発明の一実施形態によるピアツーピアデータ複製用の方法が適用可能なシナリオの一例の概略構造図である。図13に示されたように、コールセンタソリューション用のこのシナリオでは、自動コール配信(ACD)システムは、様々なコールエージェントにコールを配信する。一般に、コールエージェントは、それらのコールに連動する加入者データベースを指す。最良のパフォーマンスのためには、コールエージェントが加入者データベースの1つのコピーに関連付けられることが必要である。時々、コールエージェントは、加入者データベースにも書き込む必要があり、この書込み動作は、すべての加入者データベースに複製される必要がある。図13に示されたように、シングルマスタクラスタがこのシナリオで使用される場合があり、すなわち、コールエージェントが加入者データベースに書き込む必要があるとき、コールエージェントは、すべての加入者ノードと接続しているマスタノードに書き込み、次いで、マスタノード上で発生した書込み動作は、本発明の実施形態によって提供されたピアツーピアデータ複製用の方法に従って、加入者ノードに複製することができる。したがって、従来技術と比較すると、マルチマスタクラスタが使用された場合、クラスタ全体のパフォーマンスは減少し、シングルマスタクラスタが使用された場合、シングルマスタは過負荷になり、様々な加入者ノード向けの複数回のデータ複製のせいで、クラスタの遅延が増加する。しかしながら、本発明の実施形態によるピアツーピアデータ複製用の方法は、このシナリオに良く適合する。
さらに、本発明の実施形態は、マスタノード切替え用の方法を提供する。図14は、本発明の一実施形態による、マスタノード切替え用の方法の概略フローである。図14に示されたように、方法は以下のステップを含む。
1401.加入者ノードとマスタノードが同じクラスタ内にあり、マスタノードがダウンしたとき、少なくとも2つの加入者ノードの中の加入者ノードは、データ同期が終了するか、またはデータ同期用に事前構成された時間期間が過ぎるまで、その加入者ノードと他の加入者ノードとの間でデータ同期を実行する。
1402.複数の加入者ノードの最も高いコミットシーケンス番号(CSN)に基づいて、複数の加入者ノードからその加入者ノードが新しいマスタノードに選出された後、新しいマスタノードとして働く加入者ノードは、新しいマスタノードに選出されなかった残りの加入者ノードにプル要求を送信する。
1403.新しいマスタノードとして働く加入者ノードは、新しいマスタノードに選出されなかった残りの加入者ノードからデータを受信する。
マスタノード切替え用の上記方法の詳細は、図12に示されたような、マスタノードがダウンしたときのピアツーピアデータ複製用の方法を参照されたく、本明細書では繰り返さない。
さらに、マスタノード切替え用の上記方法はまた、新しいマスタノードとして働く加入者ノードにより、新しいマスタノード内の物理エンティティとその加入者ノードではない他の加入者ノードとの間のマッピング関係を確立することと、
書込み動作が新しいマスタノード内の物理エンティティ上で発生したとき、新しいマスタノードとして働く加入者ノードにより、マッピング関係に従って、新しいマスタノードと新しいマスタノードに選出されなかった他の加入者ノードとの間のピアツーピアデータ複製を実行することとを含む。
本明細書では、新しいマスタノードは、本発明の実施形態によって提供されたピアツーピアデータ複製用の方法に従って、ピアツーピアデータ複製を実行することができる。
本発明の実施形態によって提供されたマスタノード切替え用の上記方法によれば、マスタノードがダウンしたとき、加入者ノードは、同期ウィンドウを作成し、それにより加入者ノードを含むクラスタを迅速に回復させ、作業に復帰させる能力を有する。
図15は、本発明の別の実施形態による、マスタノード切替え用の方法の概略フローである。図15に示されたように、方法は以下のステップを含む。
1501.加入者ノードとマスタノードが同じクラスタ内にあり、マスタノードがダウンしたとき、少なくとも2つの加入者ノードの中の加入者ノードは、データ同期が終了するか、またはデータ同期用に事前構成された時間期間に到達するまで、その加入者ノードと他の加入者ノードとの間でデータ同期を実行する。
1502.他の加入者ノードと一緒に加入者ノードは、複数の加入者ノードの最も高いCSNに基づいて、複数の加入者ノードからある加入者ノードを新しいマスタノードに選出する。
1503.新しいマスタノードに選出されなかった加入者ノードは、新しいマスタノードによって発行されたプル要求を受信する。
1504.新しいマスタノードに選出されなかった加入者ノードは、新しいマスタノードによって送信されたプル要求に応答して、その加入者ノード内のデータを新しいマスタノードに送信する。
本発明の実施形態によって提供されたマスタノード切替え用の上記方法によれば、マスタノードがダウンしたとき、加入者ノードは、同期ウィンドウを作成し、それにより加入者ノードを含むクラスタを迅速に回復させ、作業に復帰させる能力を有する。
上述された実施形態により、当業者は、本発明が必要な一般的なハードウェアとともにソフトウェアによって実装される場合があることを明確に理解することができる。詳細には、本発明は、ハードウェアのみによって実装される場合もある。しかしながら、前者が好ましい実装方式である。そのような理解に基づいて、本発明の技術的解決策の本質、または従来技術に貢献するその一部は、ソフトウェア製品の形態で実装される場合がある。コンピュータソフトウェア製品は、コンピュータフロッピー(登録商標)ディスク、ハードディスク、または光ディスクなどの可読記憶媒体に記憶され、(パーソナルコンピュータ、サーバ、またはネットワーク機器であり得る)コンピュータ機器が本発明の実施形態に記載された方法を実行することを可能にする複数の命令を含む。
図16は、本発明の一実施形態による、ピアツーピアデータ複製用のデバイスの概略構造図である。図16に示されたピアツーピアデータ複製用のデバイスは、マスタノードに位置する場合がある。図16に示されたように、ピアツーピアデータ複製用のデバイスは、
第1の物理エンティティおよび第2の物理エンティティを含む少なくとも2つの物理エンティティであらかじめ設定され、第1の加入者ノードおよび第2の加入者ノードを含む少なくとも2つの加入者ノードに接続されたマスタノード内の第1の物理エンティティ上で第1の書込み動作が発生したとき、マスタノード内で第1の書込み動作の順番を示すために使用されるコミットシーケンス番号(CSN)を付加された第1のコミットリドゥレコードを生成するように構成された生成ユニット161と、
物理エンティティと加入者ノードとの間のマッピング関係に基づいて第1の物理エンティティに対応する第1の加入者ノードに、CSNを付加された第1のコミットリドゥレコードをプッシュするように構成された複製ユニット162とを含み、第1のコミットリドゥレコードは、第1の書込み動作のデータをマスタノードから第1の物理エンティティに対応する第1の加入者ノードに複製し、次いで、第1の加入者ノードにより、受信された第1のコミットリドゥレコードを第2の加入者ノードにプッシュすることを介して、第2の加入者ノードに複製するために使用される。
本発明の実施形態によるピアツーピアデータ複製用のデバイスにより、ピアツーピアデータ複製を実行することの詳細は、上記の方法実施形態を参照されたく、ここでは繰り返さない。
本発明の実施形態によって提供されたピアツーピアデータ複製用のデバイスによれば、マスタノードは、書込み動作がマスタノード上で発生したときに生成されたコミットリドゥレコードを複数のコミットリドゥレコードに分離し、複数のコミットリドゥレコードを様々な加入者ノードにプッシュし、複数のコミットリドゥレコードの各々はマスタノードにより1つの加入者ノードのみにプッシュされ、次いで、コミットリドゥレコードを受信する1つの加入者ノードのみによってプッシュすることを介して他の加入者ノードにプッシュされ、それにより、マスタノードと加入者ノードとの間の伝送が低減され、こうして、複製クラスタ内のマスタノードから複製ボトルネックが軽減される。
図17は、本発明の別の実施形態による、ピアツーピアデータ複製用のデバイスの概略構造図である。図17に示されたように、ピアツーピアデータ複製用のデバイスは、
様々な加入者ノードをマスタノードと加入者ノードとの間の様々な接続にマッピングすること、および様々な接続をマスタノード内の各セットが1つまたは複数の物理エンティティを含む物理エンティティの様々なセットにマッピングすることによって、物理エンティティと加入者ノードとの間のマッピング関係を確立するように構成された第1のマッピングユニット173をさらに含む場合がある。
対応して、複製ユニット162は、詳細には、マスタノードと加入者ノードとの間の接続を介して、第1の物理エンティティと第1の加入者ノードとの間のマッピング関係に基づいて第1の物理エンティティに対応する第1の加入者ノードに、CSNを付加された第1のコミットリドゥレコードをプッシュするように構成される。
本発明の実施形態によって提供されたピアツーピアデータ複製用のデバイスによれば、物理エンティティと加入者ノードとの間のマッピング関係を都合よく確立することができ、こうして、マスタノードのパフォーマンスをさらに向上させることができる。
図18は、本発明の別の実施形態による、ピアツーピアデータ複製用のデバイスの概略構造図である。図18に示されたように、ピアツーピアデータ複製用のデバイスは、
様々な加入者ノードをマスタノードと加入者ノードとの間の様々な接続にマッピングすること、および様々な接続をマスタノード内の各セットが複数の物理エンティティを含む物理エンティティの様々なセットにマッピングすること、およびさらにマスタノード内の物理エンティティの1つのセットを物理エンティティのそのセットに対応する加入者ノード内の様々な物理エンティティにマッピングすることによって、物理エンティティと加入者ノードとの間のマッピング関係を確立するように構成された第2のマッピングユニット183をさらに含む場合がある。
対応して、複製ユニット162は、詳細には、第1の物理エンティティに対応する第3の物理エンティティに、CSNを付加された第1のコミットリドゥレコードをプッシュするように構成され、第1の加入者ノードは、マスタノードと第1の加入者ノードとの間の接続を介して、第1の物理エンティティが属し、マスタノードの物理エンティティである物理エンティティのセットと第1の加入者ノードとの間のマッピング関係、および第1の物理エンティティと第3の物理エンティティとの間のマッピング関係に基づいて、第3の物理エンティティおよび第4の物理エンティティを含む少なくとも2つの物理エンティティであらかじめ設定される。
本発明の実施形態によって提供されたピアツーピアデータ複製用のデバイスによれば、マスタノード内の物理エンティティと加入者ノードとの間のマッピング関係を確立することができるだけでなく、マスタノード内の物理エンティティと加入者ノード内の物理エンティティとの間のマッピング関係を確立することもでき、したがって、マスタノードは、加入者ノード内の様々な物理エンティティの間のデータ配信を知ることができ、それにより、各加入者ノード内の物理エンティティの間の負荷分散を実現する。
さらに、本発明の実施形態によって提供されたピアツーピアデータ複製用のデバイスでは、複製ユニットは、新しい加入者ノードがマスタノードに接続されたとき、マスタノード内の物理エンティティ、および物理エンティティと新しい加入者ノードを含む加入者ノードとの間のマッピング関係が再構成された後、新しい加入者ノードにコミットリドゥレコードを同期させるようにさらに構成される。
本発明の実施形態によって提供されたピアツーピアデータ複製用のデバイスによれば、シングルマスタ複製トポロジは、都合よく拡張することができる。
さらに、本発明の実施形態によって提供されたピアツーピアデータ複製用のデバイスでは、第1のコミットリドゥレコードは、関連する書込み動作が発生した物理エンティティに基づいて、第2の書込み動作が第2の物理エンティティ上で発生したときデバイスによって生成された第2のコミットレコードから分離される。本明細書では、物理エンティティは、テーブル空間、デバイスファイル、ページ、および/またはパーティションであり得る。
第1のコミットレコードおよび第2のコミットレコードは、複製ユニットにより並行して、それぞれ第1の加入者ノードおよび第2の加入者ノードにプッシュされ、その結果、第1のコミットレコードおよび第2のコミットレコードは、それぞれ第1の加入者ノードおよび第2の加入者ノードにより並行して再生され、第2のコミットリドゥレコードは、第2の書込み動作のデータをマスタノードから第2の物理エンティティに対応する第2の加入者ノードに複製し、次いで、第2の加入者ノードにより、受信された第2のコミットリドゥレコードを第1の加入者ノードにプッシュすることを介して、第1の加入者ノードに複製するために使用される。
本発明の実施形態によって提供されたピアツーピアデータ複製用のデバイスによれば、マスタノードのデータを容易に都合よく分離し、様々な加入者ノードに送信することができ、こうして、マスタノードのパフォーマンスをさらに向上させることができる。
図19は、本発明の別の実施形態による、ピアツーピアデータ複製用のデバイスの概略構造図である。図19に示されたピアツーピアデータ複製用のデバイスは、加入者ノードに位置する場合がある。図19に示されたように、ピアツーピアデータ複製用のデバイスは、
マスタノード内で書込み動作の順番を示すために使用されるCSNを付加されたコミットリドゥレコードを、マスタノードから受信するように構成された受信ユニット191と、
初期化中に0にセットされた加入者ノードのCSNを引いた、コミットリドゥレコードに付加されたCSNの絶対値が1であるとき、加入者ノードのCSNをコミットリドゥレコードに付加されたCSNに更新するように構成されたCSN処理ユニット192と、
コミットリドゥレコードを再生して、マスタノード上で発生した書込み動作のデータをマスタノードから、マスタノードとマスタノードに接続された他の加入者ノードとに接続された加入者ノードに複製し、コミットリドゥレコードを他の加入者ノードにプッシュして、マスタノード上で発生した書込み動作のデータを他の加入者ノードに複製するように構成された複製ユニット193とを含む。
本発明の実施形態によるピアツーピアデータ複製用のデバイスにより、ピアツーピアデータ複製を実行することの詳細は、上記の方法実施形態を参照されたく、ここでは繰り返さない。
本発明の実施形態によって提供されたピアツーピアデータ複製用のデバイスによれば、マスタノードと加入者ノードとの間の伝送が低減され、こうして、複製クラスタ内のマスタノードから複製ボトルネックが軽減される。
さらに、本発明の実施形態によって提供されたピアツーピアデータ複製用のデバイスでは、CSN処理ユニットは、加入者ノードのCSNを引いた、受信されたコミットリドゥレコードに付加されたCSNの絶対値が1でないとき、受信されたコミットリドゥレコードを保存し、別のコミットリドゥレコードを待つようにさらに構成され、
複製ユニットは、加入者ノードの更新されたCSNを引いた、受信されたコミットリドゥレコードに付加されたCSNの絶対値が1である値に、加入者ノードのCSNが更新された後、コミットリドゥレコードを再生して、マスタノード上で発生した書込み動作のデータをマスタノードから加入者ノードに複製するようにさらに構成される。
本発明の実施形態によって提供されたピアツーピアデータ複製用のデバイスによれば、加入者ノードによって受信されたコミットリドゥレコードの順序が乱れていても、正確な複製を保証することができる。
さらに、図20は、本発明の別の実施形態による、ピアツーピアデータ複製用のデバイスの概略構造図である。図20に示されたピアツーピアデータ複製用のデバイスでは、複製ユニット193は、すべての他の加入者ノードにプル要求を送信して、マスタノードがダウンし、加入者ノードが新しいマスタノードに選出された後、他の加入者ノード内でコミットリドゥレコードを再生することによって取得された、マスタノード上で発生した書込み動作のすべてのデータを取得するようにさらに構成され、
デバイスは、加入者ノードが新しいマスタノードとして働くとき、新しいマスタノード内の物理エンティティと新しいマスタノードとして働く加入者ノードではない他の加入者ノードとの間のマッピング関係を再割当てするように構成されたマッピングユニット204をさらに含む。
場合によっては、複製ユニット193は、前のマスタノードがダウンし、別の加入者ノードが新しいマスタノードに選出された後、新しいマスタノードによって送信されたプル要求に応答して、加入者ノード内の前のマスタノード上で発生した書込み動作のデータを、新しいマスタノードとして働く加入者ノードに送信するようにさらに構成される。
本発明の実施形態によって提供されたピアツーピアデータ複製用のデバイスによれば、マスタノードがダウンしたとき、加入者ノードは、加入者ノードを含むクラスタを迅速に回復させ、作業に復帰させる能力を有する。
図21は、本発明の別の実施形態による、ピアツーピアデータ複製用のデバイスの概略構造図である。図21に示されたピアツーピアデータ複製用のデバイスは、マスタノードに位置する場合がある。図21に示されたように、ピアツーピアデータ複製用のデバイスは、プロセッサ211と、プロセッサ211に結合されたメモリ212とを含む。
メモリ212は、プログラムを記憶するように構成される。詳細には、プログラムはプログラムコードを含むことができ、プログラムコードはコンピュータ操作命令を含むことができる。
プロセッサ211は、第1の物理エンティティおよび第2の物理エンティティを含む少なくとも2つの物理エンティティであらかじめ設定され、第1の加入者ノードおよび第2の加入者ノードを含む少なくとも2つの加入者ノードに接続されたマスタノード内の第1の物理エンティティ上で第1の書込み動作が発生したとき、マスタノード内で第1の書込み動作の順番を示すために使用されるコミットシーケンス番号(CSN)を付加された第1のコミットリドゥレコードを生成することと、物理エンティティと加入者ノードとの間のマッピング関係に基づいて第1の物理エンティティに対応する第1の加入者ノードに、CSNを付加された第1のコミットリドゥレコードをプッシュすることとを行うように構成され、第1のコミットリドゥレコードは、第1の書込み動作のデータをマスタノードから第1の物理エンティティに対応する第1の加入者ノードに複製し、次いで、第1の加入者ノードにより、受信された第1のコミットリドゥレコードを第2の加入者ノードにプッシュすることを介して、第2の加入者ノードに複製するために使用される。
メモリ212は、高速RAMおよび不揮発性メモリを含む場合がある。
プロセッサ211は、中央処理装置(CPU)であり得るか、または特定用途向け集積回路(ASIC)であり得るか、または1つもしくは複数のASICに構成され得る。
本発明の実施形態によるピアツーピアデータ複製用のデバイスにより、ピアツーピアデータ複製を実行することの詳細は、上記の方法実施形態を参照されたく、ここでは繰り返さない。
本発明の実施形態によって提供されたピアツーピアデータ複製用のデバイスによれば、マスタノードは、書込み動作がマスタノード上で発生したときに生成されたコミットリドゥレコードを複数のコミットリドゥレコードに分離し、複数のコミットリドゥレコードを様々な加入者ノードにプッシュし、複数のコミットリドゥレコードの各々はマスタノードにより1つの加入者ノードのみにプッシュされ、次いで、コミットリドゥレコードを受信する1つの加入者ノードのみによってプッシュすることを介して他の加入者ノードにプッシュされ、それにより、マスタノードと加入者ノードとの間の伝送が低減され、こうして、複製クラスタ内のマスタノードから複製ボトルネックが軽減される。
詳細には、上記のピアツーピアデータ複製用のデバイスでは、物理エンティティは、テーブル空間、デバイスファイル、ページ、および/またはパーティションである。
さらに、プロセッサは、様々な加入者ノードをマスタノードと加入者ノードとの間の様々な接続にマッピングすること、および様々な接続をマスタノード内の各セットが1つまたは複数の物理エンティティを含む物理エンティティの様々なセットにマッピングすることによって、物理エンティティと加入者ノードとの間のマッピング関係を確立することと、マスタノードと加入者ノードとの間の接続を介して、第1の物理エンティティと第1の加入者ノードとの間のマッピング関係に基づいて第1の物理エンティティに対応する第1の加入者ノードに、CSNを付加された第1のコミットリドゥレコードをプッシュすることとを行うようにさらに構成される。
本発明の実施形態によって提供されたピアツーピアデータ複製用のデバイスによれば、物理エンティティと加入者ノードとの間のマッピング関係を都合よく確立することができ、こうして、マスタノードのパフォーマンスをさらに向上させることができる。
さらに、プロセッサは、様々な加入者ノードをマスタノードと加入者ノードとの間の様々な接続にマッピングすること、および様々な接続をマスタノード内の各セットが複数の物理エンティティを含む物理エンティティの様々なセットにマッピングすること、およびさらにマスタノード内の物理エンティティの1つのセットを物理エンティティのそのセットに対応する加入者ノード内の様々な物理エンティティにマッピングすることによって、物理エンティティと加入者ノードとの間のマッピング関係を確立することと、第1の物理エンティティに対応する第3の物理エンティティに、CSNを付加された第1のコミットリドゥレコードをプッシュすることとを行うようにさらに構成され、第1の加入者ノードは、マスタノードと第1の加入者ノードとの間の接続を介して、第1の物理エンティティが属し、マスタノードの物理エンティティである物理エンティティのセットと第1の加入者ノードとの間のマッピング関係、および第1の物理エンティティと第3の物理エンティティとの間のマッピング関係に基づいて、第3の物理エンティティおよび第4の物理エンティティを含む少なくとも2つの物理エンティティであらかじめ設定される。
本発明の実施形態によって提供されたピアツーピアデータ複製用のデバイスによれば、マスタノード内の物理エンティティと加入者ノードとの間のマッピング関係を確立することができるだけでなく、マスタノード内の物理エンティティと加入者ノード内の物理エンティティとの間のマッピング関係を確立することもでき、したがって、マスタノードは、加入者ノード内の様々な物理エンティティの間のデータ配信を知ることができ、それにより、各加入者ノード内の物理エンティティの間の負荷分散を実現する。
さらに、本発明の実施形態によって提供されたピアツーピアデータ複製用のデバイスでは、プロセッサは、新しい加入者ノードがマスタノードに接続されたとき、マスタノード内の物理エンティティ、および物理エンティティと新しい加入者ノードを含む加入者ノードとの間のマッピング関係が再構成された後、新しい加入者ノードにコミットリドゥレコードを同期させることを行うようにさらに構成される。
本発明の実施形態によって提供されたピアツーピアデータ複製用のデバイスによれば、シングルマスタ複製トポロジは、都合よく拡張することができる。
さらに、本発明の実施形態によって提供されたピアツーピアデータ複製用のデバイスでは、第1のコミットリドゥレコードは、関連する書込み動作が発生した物理エンティティに基づいて、第2の書込み動作が第2の物理エンティティ上で発生したときデバイスによって生成された第2のコミットレコードから分離される。
第1のコミットレコードおよび第2のコミットレコードは、プロセッサにより並行して、それぞれ第1の加入者ノードおよび第2の加入者ノードにプッシュされ、その結果、第1のコミットレコードおよび第2のコミットレコードは、それぞれ第1の加入者ノードおよび第2の加入者ノードにより並行して再生され、第2のコミットリドゥレコードは、第2の書込み動作のデータをマスタノードから第2の物理エンティティに対応する第2の加入者ノードに複製し、次いで、第2の加入者ノードにより、受信された第2のコミットリドゥレコードを第1の加入者ノードにプッシュすることを介して、第1の加入者ノードに複製するために使用される。
本発明の実施形態によって提供されたピアツーピアデータ複製用のデバイスによれば、マスタノードのデータを容易に都合よく分離し、様々な加入者ノードに送信することができ、こうして、マスタノードのパフォーマンスをさらに向上させることができる。
さらに、図21に示されたように、ピアツーピアデータ複製用のデバイスはまた、マスタノードと加入者ノードとの間などのピアツーピアデータ複製用のデバイスと他のデバイスとの間の通信を完了するように構成された、通信インターフェース213を含む。
図21に示されたように、ピアツーピアデータ複製用のデバイスはまた、データ複製中に関連情報を記憶するように構成された、ディスク214を含む。ピアツーピアデータ複製用のデバイスはマスタノードであり得るし、一方ディスク214がマスタノードの物理エンティティとして働くことは、当業者によって理解されるべきである。
代替として、特定の実装形態では、メモリ212、プロセッサ211、通信インターフェース213、およびディスク214を個別に実装することができる場合、メモリ212、プロセッサ211、通信インターフェース213、およびディスク214は、バスを介して通信接続することができる。バスは、業界標準アーキテクチャ(ISA)バス、周辺構成要素(PCI)バス、または拡張業界標準アーキテクチャ(EISA)バスなどであり得る。バスは、アドレスバス、データバス、および制御バスなどに分割することができる。便宜的に表すために、バスは単一の太線のみによって表されているが、1つのバスまたは1つの種類のバスのみが存在することを意味しない。
代替として、特定の実装形態では、メモリ212、プロセッサ211、通信インターフェース213、およびディスク214をシングルチップ内に統合することができる場合、メモリ212、プロセッサ211、通信インターフェース213、およびディスク214は、内部インターフェースを介して通信接続することができる。
図22は、本発明の別の実施形態による、ピアツーピアデータ複製用のデバイスの概略構造図である。図22に示されたピアツーピアデータ複製用のデバイスは、加入者ノードに位置する場合がある。図22に示されたように、ピアツーピアデータ複製用のデバイスは、プロセッサ221と、プロセッサ221に結合されたメモリ222とを含む。
メモリ222は、プログラムを記憶するように構成される。詳細には、プログラムはプログラムコードを含むことができ、プログラムコードはコンピュータ操作命令を含むことができる。
プロセッサ221は、マスタノード内で書込み動作の順番を示すために使用されるCSNを付加されたコミットリドゥレコードを、マスタノードから受信することと、初期化中に0にセットされた加入者ノードのCSNを引いた、コミットリドゥレコードに付加されたCSNの絶対値が1であるとき、加入者ノードのCSNをコミットリドゥレコードに付加されたCSNに更新することと、コミットリドゥレコードを再生して、マスタノード上で発生した書込み動作のデータをマスタノードから、マスタノードとマスタノードに接続された他の加入者ノードとに接続された加入者ノードに複製することと、コミットリドゥレコードを他の加入者ノードにプッシュして、マスタノード上で発生した書込み動作のデータを他の加入者ノードに複製することとを行うように構成される。
メモリ222は、高速RAMおよび不揮発性メモリを含む場合がある。
プロセッサ221は、中央処理装置(CPU)であり得るか、または特定用途向け集積回路(ASIC)であり得るか、または1つもしくは複数のASICに構成され得る。
本発明の実施形態によるピアツーピアデータ複製用のデバイスにより、ピアツーピアデータ複製を実行することの詳細は、上記の方法実施形態を参照されたく、ここでは繰り返さない。
本発明の実施形態によって提供されたピアツーピアデータ複製用のデバイスによれば、マスタノードと加入者ノードとの間の伝送を低減することができ、こうして、複製クラスタ内のマスタノードから複製ボトルネックを軽減することができる。
本発明の実施形態によって提供されたピアツーピアデータ複製用のデバイスでは、プロセッサは、加入者ノードのCSNを引いた、受信されたコミットリドゥレコードに付加されたCSNの絶対値が1でないとき、受信されたコミットリドゥレコードを保存し、別のコミットリドゥレコードを待つことと、加入者ノードの更新されたCSNを引いた、受信されたコミットリドゥレコードに付加されたCSNの絶対値が1である値に、加入者ノードのCSNが更新された後、コミットリドゥレコードを再生して、マスタノード上で発生した書込み動作のデータをマスタノードから加入者ノードに複製することとを行うようにさらに構成される。
本発明の実施形態によって提供されたピアツーピアデータ複製用のデバイスによれば、加入者ノードによって受信されたコミットリドゥレコードの順序が乱れていても、正しい複製を保証することができる。
さらに、本発明の実施形態によって提供されたピアツーピアデータ複製用のデバイスでは、プロセッサは、すべての他の加入者ノードにプル要求を送信して、マスタノードがダウンし、加入者ノードが新しいマスタノードに選出された後、他の加入者ノード内でコミットリドゥレコードを再生することによって取得された、マスタノード上で発生した書込み動作のすべてのデータを取得することと、加入者ノードが新しいマスタノードとして働くとき、新しいマスタノード内の物理エンティティと新しいマスタノードとして働く加入者ノードではない他の加入者ノードとの間のマッピング関係を再割当てすることとを行うようにさらに構成される。
場合によっては、プロセッサは、前のマスタノードがダウンし、別の加入者ノードが新しいマスタノードに選出された後、新しいマスタノードによって送信されたプル要求に応答して、加入者ノード内の前のマスタノード上で発生した書込み動作のデータを、新しいマスタノードとして働く加入者ノードに送信することを行うようにさらに構成される。
本発明の実施形態によって提供されたピアツーピアデータ複製用のデバイスによれば、マスタノードがダウンしたとき、加入者ノードは、加入者ノードを含むクラスタを迅速に回復させ、作業に復帰させる能力を有する。
図22に示されたように、ピアツーピアデータ複製用のデバイスはまた、データ複製中に関連情報を記憶するように構成された、ディスク224を含む。ピアツーピアデータ複製用のデバイスは加入者ノードであり得るし、一方ディスク224が加入者ノードの物理エンティティとして働くことは、当業者によって理解されるべきである。
代替として、特定の実装形態では、メモリ222、プロセッサ221、通信インターフェース223、およびディスク224を個別に実装することができる場合、メモリ222、プロセッサ221、通信インターフェース223、およびディスク224は、バスを介して通信接続することができる。バスは、業界標準アーキテクチャ(ISA)バス、周辺構成要素(PCI)バス、または拡張業界標準アーキテクチャ(EISA)バスなどであり得る。バスは、アドレスバス、データバス、および制御バスなどに分割することができる。便宜的に表すために、バスは単一の太線のみによって表されているが、1つのバスまたは1つの種類のバスのみが存在することを意味しない。
代替として、特定の実装形態では、メモリ222、プロセッサ221、通信インターフェース223、およびディスク224をシングルチップ内に統合することができる場合、メモリ222、プロセッサ221、通信インターフェース223、およびディスク224は、内部インターフェースを介して通信接続することができる。
図23は、本発明の一実施形態による、マスタノード切替え用のデバイスの概略構造図である。図23に示されたマスタノード切替え用のデバイスは、加入者ノードに位置する場合がある。図23に示されたように、デバイスは、
加入者ノードとマスタノードが同じクラスタ内にあり、マスタノードがダウンしたとき、データ同期が終了するか、またはデータ同期用に事前構成された時間期間に到達するまで、その加入者ノードと他の加入者ノードとの間でデータ同期を実行するように構成された同期ユニット231と、
複数の加入者ノードの最も高いコミットシーケンス番号(CSN)に基づいて、複数の加入者ノードからその加入者ノードが新しいマスタノードに選出された後、新しいマスタノードに選出されなかった残りの加入者ノードにプル要求を送信するように構成された送信ユニット232と、
新しいマスタノードに選出されなかった残りの加入者ノードからデータを受信するように構成された受信ユニット233とを含む。
本発明の実施形態によるマスタノード切替え用のデバイスにより、マスタノード切替えを実行することの詳細は、上記の方法実施形態を参照されたく、ここでは繰り返さない。
本発明の実施形態によって提供されたマスタノード切替え用のデバイスによれば、マスタノードがダウンしたとき、加入者ノードは、加入者ノードを含むクラスタを迅速に回復させ、作業に復帰させる能力を有する。
さらに、図24は、本発明の別の実施形態による、マスタノード切替え用のデバイスの概略構造図である。図24に示されたように、本発明の実施形態によって提供されたマスタノード切替え用のデバイスはまた、加入者ノードが新しいマスタノードとして働くとき、新しいマスタノード内の物理エンティティとその加入者ノードではない他の加入者ノードとの間のマッピング関係を確立するように構成された、マッピングユニット244を含み、
同期ユニットは、書込み動作が新しいマスタノード内の物理エンティティ上で発生したとき、マッピング関係に従って、新しいマスタノードと新しいマスタノードに選出されなかった他の加入者ノードとの間のピアツーピアデータ複製を実行するようにさらに構成される。
本発明の実施形態によって提供されたマスタノード切替え用のデバイスによれば、マスタノードがダウンしたとき、加入者ノードを含むクラスタは、回復し、本発明の実施形態によって提供されたピアツーピアデータ複製用の方法の実行に復帰することができる。
図25は、本発明の一実施形態による、マスタノード切替え用のデバイスの概略構造図である。図25に示されたマスタノード切替え用のデバイスは、加入者ノードに位置する場合がある。図25に示されたように、デバイスは、
加入者ノードとマスタノードが同じクラスタ内にあり、マスタノードがダウンしたとき、データ同期が終了するか、またはデータ同期用に事前構成された時間期間に到達するまで、その加入者ノードと他の加入者ノードとの間でデータ同期を実行するように構成された同期ユニット251と、
他の加入者ノードと一緒に、複数の加入者ノードの最も高いコミットシーケンス番号(CSN)に基づいて、複数の加入者ノードからある加入者ノードを新しいマスタノードに選出するように構成された選出ユニット252と、
加入者ノードが新しいマスタノードに選出されなかったとき、新しいマスタノードによって発行されたプル要求を受信するように構成された受信ユニット253と、
加入者ノードが新しいマスタノードに選出されなかったとき、新しいマスタノードによって送信されたプル要求に応答して、その加入者ノード内のデータを新しいマスタノードに送信するように構成された送信ユニット254とを含む。
本発明の実施形態によるマスタノード切替え用のデバイスにより、マスタノード切替えを実行することの詳細は、上記の方法実施形態を参照されたく、ここでは繰り返さない。
本発明の実施形態によって提供されたマスタノード切替え用のデバイスによれば、マスタノードがダウンしたとき、加入者ノードは、加入者ノードを含むクラスタを迅速に回復させ、作業に復帰させる能力を有する。
図26は、本発明の一実施形態による、マスタノード切替え用のデバイスの概略構造図である。図26に示されたマスタノード切替え用のデバイスは、加入者ノードに位置する場合がある。図26に示されたように、デバイスは、プロセッサ261と、プロセッサ261に結合されたメモリ262とを含む。
メモリ262は、プログラムを記憶するように構成される。詳細には、プログラムはプログラムコードを含むことができ、プログラムコードはコンピュータ操作命令を含むことができる。
プロセッサ261は、加入者ノードとマスタノードが同じクラスタ内にあり、マスタノードがダウンしたとき、データ同期が終了するか、またはデータ同期用に事前構成された時間期間に到達するまで、その加入者ノードと他の加入者ノードとの間でデータ同期を実行することと、複数の加入者ノードの最も高いコミットシーケンス番号(CSN)に基づいて、複数の加入者ノードからその加入者ノードが新しいマスタノードに選出された後、新しいマスタノードに選出されなかった残りの加入者ノードにプル要求を送信することと、新しいマスタノードに選出されなかった残りの加入者ノードからデータを受信することとを行うように構成される。
本発明の実施形態によるマスタノード切替え用のデバイスにより、マスタノード切替えを実行することの詳細は、上記の方法実施形態を参照されたく、ここでは繰り返さない。
本発明の実施形態によって提供されたマスタノード切替え用のデバイスによれば、マスタノードがダウンしたとき、加入者ノードは、加入者ノードを含むクラスタを迅速に回復させ、作業に復帰させる能力を有する。
さらに、プロセッサは、加入者ノードが新しいマスタノードとして働くとき、新しいマスタノード内の物理エンティティとその加入者ノードではない他の加入者ノードとの間のマッピング関係を確立することと、書込み動作が新しいマスタノード内の物理エンティティ上で発生したとき、マッピング関係に従って、新しいマスタノードと新しいマスタノードに選出されなかった他の加入者ノードとの間のピアツーピアデータ複製を実行することとを行うようにさらに構成される。
本発明の実施形態によって提供されたマスタノード切替え用のデバイスによれば、マスタノードがダウンしたとき、加入者ノードを含むクラスタは、回復し、本発明の実施形態によって提供されたピアツーピアデータ複製用の方法の実行に復帰することができる。
さらに、図26に示されたように、マスタノード切替え用のデバイスはまた、マスタノードと他の加入者ノードとの間などのピアツーピアデータ複製用のデバイスと他のデバイスとの間の通信を完了するように構成された、通信インターフェース263を含む。
図26に示されたように、マスタノード切替え用のデバイスはまた、データ複製中に関連情報を記憶するように構成された、ディスク264を含む。マスタノード切替え用のデバイスは加入者ノードであり得るし、一方ディスク264が加入者ノードの物理エンティティとして働くことは、当業者によって理解されるべきである。
代替として、特定の実装形態では、メモリ262、プロセッサ261、通信インターフェース263、およびディスク264を個別に実装することができる場合、メモリ262、プロセッサ261、通信インターフェース263、およびディスク264は、バスを介して通信接続することができる。バスは、業界標準アーキテクチャ(ISA)バス、周辺構成要素(PCI)バス、または拡張業界標準アーキテクチャ(EISA)バスなどであり得る。バスは、アドレスバス、データバス、および制御バスなどに分割することができる。便宜的に表すために、バスは単一の太線のみによって表されているが、1つのバスまたは1つの種類のバスのみが存在することを意味しない。
代替として、特定の実装形態では、メモリ262、プロセッサ261、通信インターフェース263、およびディスク264をシングルチップ内に統合することができる場合、メモリ262、プロセッサ261、通信インターフェース263、およびディスク264は、内部インターフェースを介して通信接続することができる。
図27は、本発明の一実施形態による、マスタノード切替え用のデバイスの概略構造図である。図27に示されたマスタノード切替え用のデバイスは、加入者ノードに位置する場合がある。図27に示されたように、デバイスは、プロセッサ271と、プロセッサ271に結合されたメモリ272とを含む。
メモリ272は、プログラムを記憶するように構成される。詳細には、プログラムはプログラムコードを含むことができ、プログラムコードはコンピュータ操作命令を含むことができる。
プロセッサ271は、加入者ノードとマスタノードが同じクラスタ内にあり、マスタノードがダウンしたとき、データ同期が終了するか、またはデータ同期用に事前構成された時間期間に到達するまで、その加入者ノードと他の加入者ノードとの間でデータ同期を実行することと、他の加入者ノードと一緒に、複数の加入者ノードの最も高いコミットシーケンス番号(CSN)に基づいて、複数の加入者ノードからある加入者ノードを新しいマスタノードに選出することと、加入者ノードが新しいマスタノードに選出されなかったとき、新しいマスタノードによって発行されたプル要求を受信することと、加入者ノードが新しいマスタノードに選出されなかったとき、新しいマスタノードによって送信されたプル要求に応答して、その加入者ノード内のデータを新しいマスタノードに送信することとを行うように構成される。
本発明の実施形態によるマスタノード切替え用のデバイスにより、マスタノード切替えを実行することの詳細は、上記の方法実施形態を参照されたく、ここでは繰り返さない。
本発明の実施形態によって提供されたマスタノード切替え用のデバイスによれば、マスタノードがダウンしたとき、加入者ノードは、加入者ノードを含むクラスタを迅速に回復させ、作業に復帰させる能力を有する。
さらに、図27に示されたように、マスタノード切替え用のデバイスはまた、マスタノードと他の加入者ノードとの間などのピアツーピアデータ複製用のデバイスと他のデバイスとの間の通信を完了するように構成された、通信インターフェース273を含む。
図27に示されたように、マスタノード切替え用のデバイスはまた、データ複製中に関連情報を記憶するように構成された、ディスク274を含む。マスタノード切替え用のデバイスは加入者ノードであり得るし、一方ディスク274が加入者ノードの物理エンティティとして働くことは、当業者によって理解されるべきである。
代替として、特定の実装形態では、メモリ272、プロセッサ271、通信インターフェース273、およびディスク274を個別に実装することができる場合、メモリ272、プロセッサ271、通信インターフェース273、およびディスク274は、バスを介して通信接続することができる。バスは、業界標準アーキテクチャ(ISA)バス、周辺構成要素(PCI)バス、または拡張業界標準アーキテクチャ(EISA)バスなどであり得る。バスは、アドレスバス、データバス、および制御バスなどに分割することができる。便宜的に表すために、バスは単一の太線のみによって表されているが、1つのバスまたは1つの種類のバスのみが存在することを意味しない。
代替として、特定の実装形態では、メモリ272、プロセッサ271、通信インターフェース273、およびディスク274をシングルチップ内に統合することができる場合、メモリ272、プロセッサ271、通信インターフェース273、およびディスク274は、内部インターフェースを介して通信接続することができる。
図28は、本発明の一実施形態による、シングルマスタクラスタシステムの概略構造図である。図28に示されたように、システムは、マスタノード281と、第1の加入者ノード282および第2の加入者ノード283を含む少なくとも2つの加入者ノードと、マスタノード281に、図16〜図18および図21のいずれか1つに示されたピアツーピアデータ複製用の(図28でデバイス284とマークされた)デバイスと、加入者ノードの各々に、図19、図20および図22のいずれか1つに示されたピアツーピアデータ複製用の(図28でデバイス285とマークされた)デバイスとを含む。
本発明の実施形態によるピアツーピアデータ複製用のデバイスにより、ピアツーピアデータ複製を実行することの詳細は、上記の方法実施形態を参照されたく、ここでは繰り返さない。
本発明の実施形態によって提供されたシングルマスタクラスタシステムによれば、マスタノード上の負荷を低減させることができる。
図29は、本発明の別の実施形態による、シングルマスタクラスタシステムの概略構造図である。図29に示されたように、システムは、マスタノード291と、少なくとも2つの加入者ノード292と、加入者ノード292の各々に、図23、図24および図26のいずれか1つに示されたマスタノード切替え用の(図29でデバイス293とマークされた)デバイス、ならびに図25または図27に示されたマスタノード切替え用の(図29でデバイス294とマークされた)デバイスの両方とを含む。
本発明の実施形態によるピアツーピアデータ複製用のデバイスにより、ピアツーピアデータ複製を実行することの詳細は、上記の方法実施形態を参照されたく、ここでは繰り返さない。
本発明の実施形態によって提供されたシングルマスタクラスタシステムによれば、マスタノードがダウンしたとき、加入者ノードは、加入者ノードを含むクラスタを迅速に回復させ、作業に復帰させる能力を有する。
上記は、本発明の特定の実施形態にすぎない。しかしながら、本発明の保護範囲はそれらに限定されない。本発明によって開示された技術的範囲内にあり、当業者が容易に思い付くことができる任意の改変または置換は、本発明の保護範囲内にカバーされるべきである。したがって、本発明の保護範囲は、特許請求の範囲の中の記述によって決定されるべきである。
161 生成ユニット
162 複製ユニット
173 第1のマッピングユニット
183 第2のマッピングユニット
191 受信ユニット
192 CSN処理ユニット
193 複製ユニット
204 マッピングユニット
211 プロセッサ
212 メモリ
213 通信インターフェース
214 ディスク
221 プロセッサ
222 メモリ
223 通信インターフェース
224 ディスク
231 同期ユニット
232 送信ユニット
233 受信ユニット
244 マッピングユニット
251 同期ユニット
252 選出ユニット
253 受信ユニット
254 送信ユニット
261 プロセッサ
262 メモリ
263 通信インターフェース
264 ディスク
271 プロセッサ
272 メモリ
273 通信インターフェース
274 ディスク
281 マスタノード
282 第1の加入者ノード
283 第2の加入者ノード
284 デバイス
285 デバイス
291 マスタノード
292 加入者ノード
293 デバイス
294 デバイス

Claims (23)

  1. 第1の物理エンティティおよび第2の物理エンティティを含む少なくとも2つの物理エンティティであらかじめ設定され、第1の加入者ノードおよび第2の加入者ノードを含む少なくとも2つの加入者ノードに接続されたマスタノード内の前記第1の物理エンティティ上で第1の書込み動作が発生したとき、前記マスタノードにより、前記マスタノード内で前記第1の書込み動作の順番を示すために使用されるコミットシーケンス番号(CSN)を付加された第1のコミットリドゥレコードを生成するステップであって、前記コミットリドゥレコードは、コミットされた動作のタイプを示すために使用される、ステップと、
    前記マスタノードにより、前記物理エンティティと前記加入者ノードとの間のマッピング関係に基づいて前記第1の物理エンティティに対応する第1の加入者ノードに、前記CSNを付加された前記第1のコミットリドゥレコードをプッシュするステップとを含み、前記第1のコミットリドゥレコードが、前記第1の書込み動作のデータを前記マスタノードから前記第1の物理エンティティに対応する前記第1の加入者ノードに複製し、次いで、前記第1の加入者ノードにより、受信された第1のコミットリドゥレコードを前記第2の加入者ノードにプッシュすることを介して、前記第2の加入者ノードに複製するために使用される、
    ピアツーピアデータ複製用の方法。
  2. 前記物理エンティティが、テーブル空間、デバイスファイル、ページ、および/またはパーティションである、請求項1に記載の方法。
  3. 前記物理エンティティと前記加入者ノードとの間の前記マッピング関係が、前記マスタノードにより、様々な加入者ノードを前記マスタノードと前記加入者ノードとの間の様々な接続にマッピングすること、および様々な接続を前記マスタノード内の各セットが1つまたは複数の物理エンティティを含む物理エンティティの様々なセットにマッピングすることによって確立され、
    前記マスタノードにより、前記物理エンティティと前記加入者ノードとの間のマッピング関係に基づいて前記第1の物理エンティティに対応する第1の加入者ノードに、前記CSNを付加された前記第1のコミットリドゥレコードをプッシュする前記ステップが、
    前記マスタノードにより、前記マスタノードと前記第1の加入者ノードとの間の接続を介して、前記第1の物理エンティティと前記第1の加入者ノードとの間の前記マッピング関係に基づいて前記第1の物理エンティティに対応する前記第1の加入者ノードに、前記CSNを付加された前記第1のコミットリドゥレコードをプッシュするステップを含む、
    請求項1または請求項2に記載の方法。
  4. 前記物理エンティティと前記加入者ノードとの間の前記マッピング関係が、前記マスタノードにより、様々な加入者ノードを前記マスタノードと前記加入者ノードとの間の様々な接続にマッピングすること、および様々な接続を前記マスタノード内の各セットが複数の物理エンティティを含む物理エンティティの様々なセットにマッピングすること、およびさらに前記マスタノード内の物理エンティティの1つのセットを物理エンティティの前記セットに対応する前記加入者ノード内の様々な物理エンティティにマッピングすることによって確立され、
    前記マスタノードにより、前記物理エンティティと前記加入者ノードとの間のマッピン
    グ関係に基づいて前記第1の物理エンティティに対応する前記第1の加入者ノードに、前記CSNを付加された前記第1のコミットリドゥレコードをプッシュする前記ステップが、
    前記マスタノードにより、前記第1の物理エンティティに対応する第3の物理エンティティに、前記CSNを付加された前記第1のコミットリドゥレコードをプッシュするステップを含み、前記第1の加入者ノードが、前記マスタノードと前記第1の加入者ノードとの間の接続を介して、前記第3の物理エンティティおよび第4の物理エンティティを含む少なくとも2つの物理エンティティであらかじめ設定され、該設定は、前記第1の物理エンティティが属し、前記マスタノードの物理エンティティである物理エンティティの前記セットと前記第1の加入者ノードとの間の前記マッピング関係、および前記第1の物理エンティティと前記第3の物理エンティティとの間の前記マッピング関係に基づく、
    請求項1または請求項2に記載の方法。
  5. 新しい加入者ノードが前記マスタノードに接続されたとき、
    前記マスタノードにより、前記マスタノード内の物理エンティティ、および前記物理エンティティと前記新しい加入者ノードを含む前記加入者ノードとの間のマッピング関係が再構成された後、前記新しい加入者ノードにコミットリドゥレコードを同期させるステップ
    をさらに含む、請求項1または請求項2に記載の方法。
  6. 第1のコミットレコードが、第2のコミットレコードから分離され、該第2のコミットレコードは、関連する書込み動作が発生した物理エンティティに基づいて、第2の書込み動作が第2の物理エンティティ上で発生したとき前記マスタノードによって生成される、請求項1または2に記載の方法。
  7. 前記第1のコミットレコードおよび前記第2のコミットレコードが、前記マスタノードにより並行して、それぞれ前記第1の加入者ノードおよび前記第2の加入者ノードにプッシュされ、その結果、前記第1のコミットレコードおよび前記第2のコミットレコードが、それぞれ前記第1の加入者ノードおよび前記第2の加入者ノードにより並行して再生され、第2のコミットリドゥレコードが、前記第2の書込み動作のデータを前記マスタノードから前記第2の物理エンティティに対応する前記第2の加入者ノードに複製し、次いで、前記第2の加入者ノードにより、受信された第2のコミットリドゥレコードを前記第1の加入者ノードにプッシュすることを介して、前記第1の加入者ノードに複製するために使用される、請求項6に記載の方法。
  8. 加入者ノードにより、マスタノード内で書込み動作の順番を示すために使用されるコミットシーケンス番号(CSN)を付加されたコミットリドゥレコードを、前記マスタノードから受信するステップであって、前記コミットリドゥレコードは、コミットされた動作のタイプを示すために使用される、ステップと、
    前記コミットリドゥレコードに付加された前記CSNから前記加入者ノードの前記CSNを引いた値の絶対値が1であるとき、前記加入者ノードの前記CSNを前記コミットリドゥレコードに付加された前記CSNに更新するステップであって、前記加入者ノードの前記CSNは、初期化中に0にセットされる、ステップと、
    前記加入者ノードにより、前記コミットリドゥレコードを再生して、マスタノード上で発生した書込み動作のデータを前記マスタノードから、前記マスタノードと前記マスタノードに接続された他の加入者ノードとに接続された前記加入者ノードに複製するステップと、
    前記加入者ノードにより、前記コミットリドゥレコードを前記他の加入者ノードにプッシュして、前記マスタノード上で発生した前記書込み動作の前記データを前記他の加入者ノードに複製するステップと
    を含む、ピアツーピアデータ複製用の方法。
  9. 前記受信されたコミットリドゥレコードに付加された前記CSNから前記加入者ノードの前記CSNを引いた値の前記絶対値が1でないとき、前記加入者ノードにより、前記受信されたコミットリドゥレコードを保存し、別のコミットリドゥレコードを待つステップと、
    前記加入者ノードの更新されたCSNを引いた、前記受信されたコミットリドゥレコードに付加された前記CSNの前記絶対値が1である値に、前記加入者ノードの前記CSNが更新された後、前記加入者ノードにより、前記コミットリドゥレコードを再生して、前記マスタノード上で発生した前記書込み動作のデータを前記マスタノードから前記加入者ノードに複製するステップと
    をさらに含む、請求項8に記載の方法。
  10. 前記加入者ノードにより、すべての他の加入者ノードにプル要求を送信して、前記マスタノードがダウンし、前記加入者ノードが新しいマスタノードに選出された後、前記他の加入者ノード内で前記コミットリドゥレコードを再生することによって取得された、前記マスタノード上で発生した前記書込み動作のすべてのデータを取得するステップと、
    前記新しいマスタノードとして働く前記加入者ノードにより、前記新しいマスタノード内の物理エンティティと前記加入者ノードではない前記他の加入者ノードとの間のマッピング関係を再割当てするステップと
    をさらに含む、請求項8に記載の方法。
  11. 前記加入者ノードにより、前のマスタノードがダウンし、別の加入者ノードが新しいマスタノードに選出された後、前記新しいマスタノードによって送信されたプル要求に応答して、前記加入者ノード内の前記前のマスタノード上で発生した前記書込み動作の前記データを、前記新しいマスタノードとして働く加入者ノードに送信するステップをさらに含む、請求項8に記載の方法。
  12. マスタノードに位置し、
    第1の物理エンティティおよび第2の物理エンティティを含む少なくとも2つの物理エンティティであらかじめ設定され、第1の加入者ノードおよび第2の加入者ノードを含む少なくとも2つの加入者ノードに接続されたマスタノード内の前記第1の物理エンティティ上で第1の書込み動作が発生したとき、前記マスタノード内で前記第1の書込み動作の順番を示すために使用されるコミットシーケンス番号(CSN)を付加された第1のコミットリドゥレコードを生成するように構成された生成ユニットであって、前記コミットリドゥレコードは、コミットされた動作のタイプを示すために使用される、生成ユニットと、
    前記物理エンティティと前記加入者ノードとの間のマッピング関係に基づいて前記第1の物理エンティティに対応する第1の加入者ノードに、前記CSNを付加された前記第1のコミットリドゥレコードをプッシュするように構成された複製ユニットとを備え、前記第1のコミットリドゥレコードが、前記第1の書込み動作のデータを前記マスタノードから前記第1の物理エンティティに対応する前記第1の加入者ノードに複製し、次いで、前記第1の加入者ノードにより、受信された第1のコミットリドゥレコードを前記第2の加入者ノードにプッシュすることを介して、前記第2の加入者ノードに複製するために使用される、
    ピアツーピアデータ複製用のデバイス。
  13. 前記物理エンティティが、テーブル空間、デバイスファイル、ページ、および/またはパーティションである、請求項12に記載のピアツーピアデータ複製用のデバイス。
  14. 様々な加入者ノードを前記マスタノードと前記加入者ノードとの間の様々な接続にマッピングすること、および様々な接続を前記マスタノード内の各セットが1つまたは複数の物理エンティティを含む物理エンティティの様々なセットにマッピングすることによって、前記物理エンティティと前記加入者ノードとの間の前記マッピング関係を確立するように構成された第1のマッピングユニットをさらに備え、
    前記複製ユニットが、詳細には、前記マスタノードと前記第1の加入者ノードとの間の接続を介して、前記第1の物理エンティティと前記第1の加入者ノードとの間の前記マッピング関係に基づいて前記第1の物理エンティティに対応する前記第1の加入者ノードに、前
    記CSNを付加された前記第1のコミットリドゥレコードをプッシュするように構成され、前記第1のコミットリドゥレコードが、前記第1の書込み動作のデータを前記マスタノードから前記第1の物理エンティティに対応する前記第1の加入者ノードに複製し、次いで、前記第1の加入者ノードにより、前記受信された第1のコミットリドゥレコードを前記第2の加入者ノードにプッシュすることを介して、前記第2の加入者ノードに複製するために使用される、
    請求項12または請求項13に記載のピアツーピアデータ複製用のデバイス。
  15. 様々な加入者ノードを前記マスタノードと前記加入者ノードとの間の様々な接続にマッピングすること、および様々な接続を前記マスタノード内の各セットが複数の物理エンティティを含む物理エンティティの様々なセットにマッピングすること、およびさらに前記マスタノード内の物理エンティティの1つのセットを物理エンティティの前記セットに対応する前記加入者ノード内の様々な物理エンティティにマッピングすることによって、前記物理エンティティと前記加入者ノードとの間の前記マッピング関係を確立するように構成された第2のマッピングユニットをさらに備え、
    前記複製ユニットが、詳細には、前記第1の物理エンティティに対応する第3の物理エンティティに、前記CSNを付加された前記第1のコミットリドゥレコードをプッシュするように構成され、前記第1の加入者ノードが、前記マスタノードと前記第1の加入者ノードとの間の接続を介して、前記第3の物理エンティティおよび第4の物理エンティティを含む少なくとも2つの物理エンティティであらかじめ設定され、該設定は、前記第1の物理エンティティが属し、前記マスタノードの物理エンティティである物理エンティティの前記セットと前記第1の加入者ノードとの間の前記マッピング関係、および前記第1の物理エンティティと前記第3の物理エンティティとの間の前記マッピング関係に基づき、前記第1のコミットリドゥレコードが、前記第1の書込み動作のデータを前記マスタノードから前記第1の物理エンティティに対応する前記第1の加入者ノードに複製し、次いで、前記第1の加入者ノードにより、前記受信された第1のコミットリドゥレコードを前記第2の加入者ノードにプッシュすることを介して、前記第2の加入者ノードに複製するために使用される、
    請求項12または請求項13に記載のピアツーピアデータ複製用のデバイス。
  16. 前記複製ユニットが、新しい加入者ノードが前記マスタノードに接続されたとき、前記マスタノード内の物理エンティティ、および前記物理エンティティと前記新しい加入者ノードを含む前記加入者ノードとの間のマッピング関係が再構成された後、前記新しい加入者ノードにコミットリドゥレコードを同期させるようにさらに構成された、請求項12または請求項13に記載のピアツーピアデータ複製用のデバイス。
  17. 第1のコミットレコードが、第2のコミットレコードから分離され、該第2のコミットレコードは、関連する書込み動作が発生した物理エンティティに基づいて、第2の書込み動作が第2の物理エンティティ上で発生したとき前記デバイスによって生成される、請求項12または請求項13に記載のピアツーピアデータ複製用のデバイス。
  18. 前記第1のコミットレコードおよび前記第2のコミットレコードが、前記複製ユニットにより並行して、それぞれ前記第1の加入者ノードおよび前記第2の加入者ノードにプッシュされ、その結果、前記第1のコミットレコードおよび前記第2のコミットレコードが、それぞれ前記第1の加入者ノードおよび前記第2の加入者ノードにより並行して再生され、第2のコミットリドゥレコードが、前記第2の書込み動作のデータを前記マスタノードから前記第2の物理エンティティに対応する前記第2の加入者ノードに複製し、次いで、前記第2の加入者ノードにより、受信された第2のコミットリドゥレコードを前記第1の加入者ノードにプッシュすることを介して、前記第1の加入者ノードに複製するために使用される、請求項17に記載のピアツーピアデータ複製用のデバイス。
  19. 加入者ノードに位置し、
    マスタノード内で書込み動作の順番を示すために使用されるコミットシーケンス番号(CSN)を付加されたコミットリドゥレコードを、前記マスタノードから受信するように構成された受信ユニットであって、前記コミットリドゥレコードは、コミットされた動作のタイプを示すために使用される、受信ユニットと、
    前記コミットリドゥレコードに付加された前記CSNから前記加入者ノードの前記CSNを引いた値の絶対値が1であるとき、前記加入者ノードの前記CSNを前記コミットリドゥレコードに付加された前記CSNに更新するように構成されたCSN処理ユニットであって、前記加入者ノードの前記CSNは、初期化中に0にセットされる、CSN処理ユニットと、
    前記コミットリドゥレコードを再生して、マスタノード上で発生した書込み動作のデータを前記マスタノードから、前記マスタノードと前記マスタノードに接続された他の加入者ノードとに接続された前記加入者ノードに複製し、前記コミットリドゥレコードを他の加入者ノードにプッシュして、前記マスタノード上で発生した前記書込み動作の前記データを前記他の加入者ノードに複製するように構成された複製ユニットとを備える、ピアツーピアデータ複製用のデバイス。
  20. 前記CSN処理ユニットが、前記受信されたコミットリドゥレコードに付加された前記CSNから前記加入者ノードの前記CSNを引いた値の前記絶対値が1でないとき、前記受信されたコミットリドゥレコードを保存し、別のコミットリドゥレコードを待つようにさらに構成され、
    前記複製ユニットが、前記加入者ノードの更新されたCSNを引いた、前記受信されたコミットリドゥレコードに付加された前記CSNの前記絶対値が1である値に、前記加入者ノードの前記CSNが更新された後、前記コミットリドゥレコードを再生して、前記マスタノード上で発生した前記書込み動作のデータを前記マスタノードから前記加入者ノードに複製するようにさらに構成された、請求項19に記載のピアツーピアデータ複製用のデバイス。
  21. 前記複製ユニットが、すべての他の加入者ノードにプル要求を送信して、前記マスタノードがダウンし、前記加入者ノードが新しいマスタノードに選出された後、前記他の加入者ノード内で前記コミットリドゥレコードを再生することによって取得された、前記マスタノード上で発生した前記書込み動作のすべてのデータを取得するように構成され、
    前記デバイスが、
    前記加入者ノードが前記新しいマスタノードとして働くとき、前記新しいマスタノード内の物理エンティティと前記新しいマスタノードとして働く前記加入者ノードではない前記他の加入者ノードとの間のマッピング関係を再割当てするように構成されたマッピングユニット
    をさらに備える、請求項19に記載のピアツーピアデータ複製用のデバイス。
  22. 前のマスタノードがダウンし、別の加入者ノードが新しいマスタノードに選出された後、前記複製ユニットが、前記新しいマスタノードによって送信されたプル要求に応答して、前記加入者ノード内の前記前のマスタノード上で発生した前記書込み動作の前記データを、前記新しいマスタノードとして働く加入者ノードに送信するようにさらに構成された、請求項19に記載のピアツーピアデータ複製用のデバイス。
  23. マスタノードと、第1の加入者ノードおよび第2の加入者ノードを含む少なくとも2つの加入者ノードとを含み、
    請求項12〜18のいずれか一項による、ピアツーピアデータ複製用のデバイスが前記マスタノードに位置し、
    請求項19〜22のいずれか一項による、ピアツーピアデータ複製用のデバイスが前記加入者ノードの各々に位置する、
    シングルマスタクラスタシステム。
JP2016517160A 2014-05-05 2014-10-29 ピアツーピアデータ複製用の方法、デバイス、およびシステム、ならびにマスタノード切替え用の方法、デバイス、およびシステム Active JP6086463B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IN2253/CHE/2014 2014-05-05
IN2253CH2014 2014-05-05
PCT/CN2014/089757 WO2015169067A1 (en) 2014-05-05 2014-10-29 Method, device, and system for peer-to-peer data replication and method, device, and system for master node switching

Publications (2)

Publication Number Publication Date
JP2016521427A JP2016521427A (ja) 2016-07-21
JP6086463B2 true JP6086463B2 (ja) 2017-03-01

Family

ID=54392089

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016517160A Active JP6086463B2 (ja) 2014-05-05 2014-10-29 ピアツーピアデータ複製用の方法、デバイス、およびシステム、ならびにマスタノード切替え用の方法、デバイス、およびシステム

Country Status (6)

Country Link
US (1) US11068499B2 (ja)
EP (1) EP2954424B1 (ja)
JP (1) JP6086463B2 (ja)
KR (1) KR101670343B1 (ja)
CN (1) CN105518641B (ja)
WO (1) WO2015169067A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108268542A (zh) * 2016-12-31 2018-07-10 中国移动通信集团河北有限公司 用于数据库集群数据迁移的方法和系统
CN107360206B (zh) 2017-03-29 2020-03-27 创新先进技术有限公司 一种区块链共识方法、设备及系统
CN110955720B (zh) * 2018-09-27 2023-04-07 阿里巴巴集团控股有限公司 一种数据加载方法、装置及系统
CN112306962B (zh) * 2019-07-26 2024-02-23 杭州海康威视数字技术股份有限公司 计算机集群系统中的文件拷贝方法、装置及存储介质
CN111309805B (zh) * 2019-12-13 2023-10-20 华为技术有限公司 数据库的数据读写方法及装置
US12061526B2 (en) * 2021-06-08 2024-08-13 Salesforce, Inc. History information in director-based database system for transactional consistency
US11989051B2 (en) 2021-06-08 2024-05-21 Salesforce, Inc. Time alignment in director-based database system for transactional consistency
US11822535B2 (en) * 2021-06-08 2023-11-21 Salesforce, Inc. Director-based database system for transactional consistency
US20220391379A1 (en) * 2021-06-08 2022-12-08 Salesforce.Com, Inc. Assistant nodes in director-based database system for transactional consistency
US20230350871A1 (en) * 2022-04-28 2023-11-02 Sap Se Efficiently Managing Changes To Master Data
US20240061815A1 (en) * 2022-08-17 2024-02-22 Saudi Arabian Oil Company Inter-site replication topology for directory services

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5261094A (en) 1991-04-08 1993-11-09 International Business Machines Corporation Asynchronous replication of data changes by distributed update requests
CA2172517C (en) 1993-09-24 2000-02-15 Sandeep Jain Method and apparatus for data replication
US5687363A (en) 1994-03-30 1997-11-11 Siemens Stromberg-Carlson Distributed database architecture and distributed database management system for open network evolution
US6901433B2 (en) 1995-06-07 2005-05-31 Microsoft Corporation System for providing users with a filtered view of interactive network directory obtains from remote properties cache that provided by an on-line service
US5937414A (en) 1997-02-28 1999-08-10 Oracle Corporation Method and apparatus for providing database system replication in a mixed propagation environment
JP4187302B2 (ja) 1998-03-25 2008-11-26 富士通株式会社 リレーショナルデータベース同期方法およびそのプログラムを記録した記録媒体
US7305451B2 (en) 1998-08-24 2007-12-04 Microsoft Corporation System for providing users an integrated directory service containing content nodes located in different groups of application servers in computer network
US6408292B1 (en) 1999-08-04 2002-06-18 Hyperroll, Israel, Ltd. Method of and system for managing multi-dimensional databases using modular-arithmetic based address data mapping processes on integer-encoded business dimensions
US20020029207A1 (en) 2000-02-28 2002-03-07 Hyperroll, Inc. Data aggregation server for managing a multi-dimensional database and database management system having data aggregation server integrated therein
US6615223B1 (en) * 2000-02-29 2003-09-02 Oracle International Corporation Method and system for data replication
US7177866B2 (en) 2001-03-16 2007-02-13 Gravic, Inc. Asynchronous coordinated commit replication and dual write with replication transmission and locking of target database on updates only
US6889229B1 (en) 2001-09-28 2005-05-03 Oracle International Corporation Techniques for peer-to-peer replication of objects in a relational database
US20030172070A1 (en) 2002-03-06 2003-09-11 Sawadsky Nicholas Justin Synchronous peer-to-peer multipoint database synchronization
US20040153473A1 (en) * 2002-11-21 2004-08-05 Norman Hutchinson Method and system for synchronizing data in peer to peer networking environments
US7143123B2 (en) 2004-01-09 2006-11-28 Microsoft Corporation Well-known transactions in data replication
US8688634B2 (en) 2004-02-27 2014-04-01 International Business Machines Corporation Asynchronous peer-to-peer data replication
US8880502B2 (en) * 2004-03-15 2014-11-04 International Business Machines Corporation Searching a range in a set of values in a network with distributed storage entities
US20060047713A1 (en) 2004-08-03 2006-03-02 Wisdomforce Technologies, Inc. System and method for database replication by interception of in memory transactional change records
EP1647898A1 (de) 2004-10-12 2006-04-19 IMS Innovation Management Services GmbH Serverlose Replikation von Datenbanken
US20060224757A1 (en) 2005-03-15 2006-10-05 Han Fang System and method for streaming service replication a in peer-to-peer network
US7613742B2 (en) 2006-05-02 2009-11-03 Mypoints.Com Inc. System and method for providing three-way failover for a transactional database
GB0612433D0 (en) 2006-06-23 2006-08-02 Ibm Method and system for defining a hierarchical structure
US8073922B2 (en) * 2007-07-27 2011-12-06 Twinstrata, Inc System and method for remote asynchronous data replication
US20110137991A1 (en) * 2009-12-01 2011-06-09 Lester Paul Russell Systems and methods for management and collaboration in a private network
US20110178984A1 (en) * 2010-01-18 2011-07-21 Microsoft Corporation Replication protocol for database systems
US8271438B2 (en) 2010-04-07 2012-09-18 Hitachi, Ltd. Asynchronous remote copy system and storage control method
US8595184B2 (en) 2010-05-19 2013-11-26 Microsoft Corporation Scaleable fault-tolerant metadata service
US8589361B2 (en) * 2010-08-30 2013-11-19 Oracle International Corporation Reduced disk space standby
JP5853819B2 (ja) * 2012-03-29 2016-02-09 富士通株式会社 制御プログラム、制御方法、記憶制御装置および情報処理システム
US9218406B2 (en) * 2012-04-26 2015-12-22 Connected Data, Inc. System and method for managing user data in a plurality of storage appliances over a wide area network for collaboration, protection, publication, or sharing
US9467383B2 (en) * 2012-06-19 2016-10-11 Hewlett Packard Enterprise Development Lp Iterative optimization method for site selection in global load balance

Also Published As

Publication number Publication date
EP2954424A4 (en) 2015-12-16
KR20160002656A (ko) 2016-01-08
CN105518641B (zh) 2018-05-04
EP2954424A1 (en) 2015-12-16
WO2015169067A1 (en) 2015-11-12
US11068499B2 (en) 2021-07-20
CN105518641A (zh) 2016-04-20
KR101670343B1 (ko) 2016-10-28
JP2016521427A (ja) 2016-07-21
US20150317371A1 (en) 2015-11-05
EP2954424B1 (en) 2018-05-30

Similar Documents

Publication Publication Date Title
JP6086463B2 (ja) ピアツーピアデータ複製用の方法、デバイス、およびシステム、ならびにマスタノード切替え用の方法、デバイス、およびシステム
US10185497B2 (en) Cluster federation and trust in a cloud environment
US11726984B2 (en) Data redistribution method and apparatus, and database cluster
US9405781B2 (en) Virtual multi-cluster clouds
US11442961B2 (en) Active transaction list synchronization method and apparatus
CN103268318B (zh) 一种强一致性的分布式键值数据库系统及其读写方法
US7152076B2 (en) System and method for efficient multi-master replication
US11061924B2 (en) Multi-region, multi-master replication of database tables
CN105493474B (zh) 用于支持用于同步分布式数据网格中的数据的分区级别日志的系统及方法
US20060206621A1 (en) Movement of data in a distributed database system to a storage location closest to a center of activity for the data
JP2008533564A (ja) データ管理のための方法および装置
US10712964B2 (en) Pre-forking replicas for efficient scaling of a distributed data storage system
US10963353B2 (en) Systems and methods for cross-regional back up of distributed databases on a cloud service
WO2022134797A1 (zh) 一种数据分片存储方法、装置、计算机设备和存储介质
CN115146002A (zh) 跨数据中心的数据同步方法及装置
WO2022134727A1 (zh) 一种k-db数据库多节点集群调度的方法、系统、设备及介质
CN113905054A (zh) 基于RDMA的Kudu集群数据同步方法、装置、系统
CN105723365B (zh) 用于优化索引、主数据库节点和订户数据库节点的方法
WO2023274206A1 (zh) 一种数据流量控制方法及相关装置
Gupta et al. On the fly file dereplication mechanism
KR101491452B1 (ko) 메시징 채널을 이용한 데이터 복제 방법 및 장치

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160628

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161128

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170125

R150 Certificate of patent or registration of utility model

Ref document number: 6086463

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250