(57)【要約】  本発明は、ピアツーピアデータ複製用の方法、デバイス、およびシステム、ならびにマスタノード切替え用の方法、デバイス、およびシステムを開示する。ピアツーピアデータ複製用の方法は、第1の物理エンティティおよび第2の物理エンティティであらかじめ設定され、第1の加入者ノードおよび第2の加入者ノードに接続されたマスタノード内で、第1の書込み動作の順番を示すために使用されるコミットシーケンス番号(CSN)を付加された第1のコミットリドゥレコードを生成することと、物理エンティティと加入者ノードとの間のマッピング関係に基づいて第1の物理エンティティに対応する第1の加入者ノードに、第1のコミットリドゥレコードをプッシュすることとを含み、第1のコミットリドゥレコードは、第1の書込み動作のデータをマスタノードから第1の物理エンティティに対応する第1の加入者ノードに複製し、次いで、第1の加入者ノードにより、受信された第1のコミットリドゥレコードを第2の加入者ノードにプッシュすることを介して、第2の加入者ノードに複製するために使用される。本発明は、複製クラスタ内のマスタノードから複製ボトルネックを軽減することができる。
2016521427.tif 000002
【特許請求の範囲】
【請求項１】
第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の物理エンティティに対応する第1の加入者ノードに、前記CSNを付加された前記第1のコミットリドゥレコードをプッシュする前記ステップが、
前記マスタノードにより、前記マスタノードと前記第1の加入者ノードとの間の接続を介して、前記第1の物理エンティティと前記第1の加入者ノードとの間の前記マッピング関係に基づいて前記第1の物理エンティティに対応する前記第1の加入者ノードに、前記CSNを付加された前記第1のコミットリドゥレコードをプッシュするステップを含む、
請求項1または請求項2に記載の方法。
【請求項４】
前記物理エンティティと前記加入者ノードとの間の前記マッピング関係が、前記マスタノードにより、様々な加入者ノードを前記マスタノードと前記加入者ノードとの間の様々な接続にマッピングすること、および様々な接続を前記マスタノード内の各セットが複数の物理エンティティを含む物理エンティティの様々なセットにマッピングすること、およびさらに前記マスタノード内の物理エンティティの1つのセットを物理エンティティの前記セットに対応する前記加入者ノード内の様々な物理エンティティにマッピングすることによって確立され、
前記マスタノードにより、前記物理エンティティと前記加入者ノードとの間のマッピング関係に基づいて前記第1の物理エンティティに対応する前記第1の加入者ノードに、前記CSNを付加された前記第1のコミットリドゥレコードをプッシュする前記ステップが、
前記マスタノードにより、前記第1の物理エンティティに対応する第3の物理エンティティに、前記CSNを付加された前記第1のコミットリドゥレコードをプッシュするステップを含み、前記第1の加入者ノードが、前記マスタノードと前記第1の加入者ノードとの間の接続を介して、前記第1の物理エンティティが属し、前記マスタノードの物理エンティティである物理エンティティの前記セットと前記第1の加入者ノードとの間の前記マッピング関係、および前記第1の物理エンティティと前記第3の物理エンティティとの間の前記マッピング関係に基づいて、前記第3の物理エンティティおよび第4の物理エンティティを含む少なくとも2つの物理エンティティであらかじめ設定された、
請求項1または請求項2に記載の方法。
【請求項５】
新しい加入者ノードが前記マスタノードに接続されたとき、
前記マスタノードにより、前記マスタノード内の物理エンティティ、および前記物理エンティティと前記新しい加入者ノードを含む前記加入者ノードとの間のマッピング関係が再構成された後、前記新しい加入者ノードにコミットリドゥレコードを同期させるステップ
をさらに含む、請求項1または請求項2に記載の方法。
【請求項６】
第1のコミットレコードが、関連する書込み動作が発生した物理エンティティに基づいて、第2の書込み動作が第2の物理エンティティ上で発生したとき前記マスタノードによって生成された第2のコミットレコードから分離される、請求項1または2に記載の方法。
【請求項７】
前記第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を引いた、前記受信されたコミットリドゥレコードに付加された前記CSNの前記絶対値が1でないとき、前記加入者ノードにより、前記受信されたコミットリドゥレコードを保存し、別のコミットリドゥレコードを待つステップと、
前記加入者ノードの更新されたCSNを引いた、前記受信されたコミットリドゥレコードに付加された前記CSNの前記絶対値が1である値に、前記加入者ノードの前記CSNが更新された後、前記加入者ノードにより、前記コミットリドゥレコードを再生して、前記マスタノード上で発生した前記書込み動作のデータを前記マスタノードから前記加入者ノードに複製するステップと
をさらに含む、請求項8に記載の方法。
【請求項１０】
前記加入者ノードにより、すべての他の加入者ノードにプル要求を送信して、前記マスタノードがダウンし、前記加入者ノードが新しいマスタノードに選出された後、前記他の加入者ノード内で前記コミットリドゥレコードを再生することによって取得された、前記マスタノード上で発生した前記書込み動作のすべてのデータを取得するステップと、
前記新しいマスタノードとして働く前記加入者ノードにより、前記新しいマスタノード内の物理エンティティと前記加入者ノードではない前記他の加入者ノードとの間のマッピング関係を再割当てするステップと
をさらに含む、請求項8に記載の方法。
【請求項１１】
前記加入者ノードにより、前のマスタノードがダウンし、別の加入者ノードが新しいマスタノードに選出された後、前記新しいマスタノードによって送信されたプル要求に応答して、前記加入者ノード内の前記前のマスタノード上で発生した前記書込み動作の前記データを、前記新しいマスタノードとして働く加入者ノードに送信するステップをさらに含む、請求項8に記載の方法。
【請求項１２】
加入者ノードとマスタノードが同じクラスタ内にあり、前記マスタノードがダウンしたとき、少なくとも2つの加入者ノードの中の加入者ノードにより、データ同期が終了するか、または前記データ同期用に事前構成された時間期間に到達するまで、加入者ノードと他の加入者ノードとの間で前記データ同期を実行するステップと、
複数の加入者ノードの最も高いコミットシーケンス番号(CSN)に基づいて、複数の加入者ノードから加入者ノードが新しいマスタノードに選出された後、前記新しいマスタノードとして働く加入者ノードにより、前記新しいマスタノードに選出されなかった残りの加入者ノードにプル要求を送信するステップと、
前記新しいマスタノードとして働く加入者ノードにより、前記新しいマスタノードに選出されなかった残りの加入者ノードからデータを受信するステップと
を含む、マスタノード切替え用の方法。
【請求項１３】
前記新しいマスタノードとして働く前記加入者ノードにより、前記新しいマスタノード内の物理エンティティと前記加入者ノードではない前記他の加入者ノードとの間のマッピング関係を確立するステップと、
書込み動作が前記新しいマスタノード内の前記物理エンティティ上で発生したとき、前記新しいマスタノードとして働く前記加入者ノードにより、前記マッピング関係に従って、前記新しいマスタノードと前記新しいマスタノードに選出されなかった前記他の加入者ノードとの間のピアツーピアデータ複製を実行するステップと
をさらに含む、請求項12に記載の方法。
【請求項１４】
加入者ノードとマスタノードが同じクラスタ内にあり、前記マスタノードがダウンしたとき、少なくとも2つの加入者ノードの中の加入者ノードにより、データ同期が終了するか、または前記データ同期用に事前構成された時間期間に到達するまで、加入者ノードと他の加入者ノードとの間で前記データ同期を実行するステップと、
他の加入者ノードと一緒に加入者ノードにより、複数の加入者ノードの最も高いコミットシーケンス番号(CSN)に基づいて、複数の加入者ノードからある加入者ノードを新しいマスタノードに選出するステップと、
前記新しいマスタノードに選出されなかった加入者ノードにより、前記新しいマスタノードによって発行されたプル要求を受信するステップと、
前記新しいマスタノードに選出されなかった加入者ノードにより、前記新しいマスタノードによって送信された前記プル要求に応答して、加入者ノード内のデータを前記新しいマスタノードに送信するステップと
を含む、マスタノード切替え用の方法。
【請求項１５】
マスタノードに位置し、
第1の物理エンティティおよび第2の物理エンティティを含む少なくとも2つの物理エンティティであらかじめ設定され、第1の加入者ノードおよび第2の加入者ノードを含む少なくとも2つの加入者ノードに接続されたマスタノード内の前記第1の物理エンティティ上で第1の書込み動作が発生したとき、前記マスタノード内で前記第1の書込み動作の順番を示すために使用されるコミットシーケンス番号(CSN)を付加された第1のコミットリドゥレコードを生成するように構成された生成ユニットと、
前記物理エンティティと前記加入者ノードとの間のマッピング関係に基づいて前記第1の物理エンティティに対応する第1の加入者ノードに、前記CSNを付加された前記第1のコミットリドゥレコードをプッシュするように構成された複製ユニットとを備え、前記第1のコミットリドゥレコードが、前記第1の書込み動作のデータを前記マスタノードから前記第1の物理エンティティに対応する前記第1の加入者ノードに複製し、次いで、前記第1の加入者ノードにより、受信された第1のコミットリドゥレコードを前記第2の加入者ノードにプッシュすることを介して、前記第2の加入者ノードに複製するために使用される、
ピアツーピアデータ複製用のデバイス。
【請求項１６】
前記物理エンティティが、テーブル空間、デバイスファイル、ページ、および/またはパーティションである、請求項15に記載のピアツーピアデータ複製用のデバイス。
【請求項１７】
様々な加入者ノードを前記マスタノードと前記加入者ノードとの間の様々な接続にマッピングすること、および様々な接続を前記マスタノード内の各セットが1つまたは複数の物理エンティティを含む物理エンティティの様々なセットにマッピングすることによって、前記物理エンティティと前記加入者ノードとの間の前記マッピング関係を確立するように構成された第1のマッピングユニットをさらに備え、
前記複製ユニットが、詳細には、前記マスタノードと前記第1の加入者ノードとの間の接続を介して、前記第1の物理エンティティと前記第1の加入者ノードとの間の前記マッピング関係に基づいて前記第1の物理エンティティに対応する前記第1の加入者ノードに、前記CSNを付加された前記第1のコミットリドゥレコードをプッシュするように構成され、前記第1のコミットリドゥレコードが、前記第1の書込み動作のデータを前記マスタノードから前記第1の物理エンティティに対応する前記第1の加入者ノードに複製し、次いで、前記第1の加入者ノードにより、前記受信された第1のコミットリドゥレコードを前記第2の加入者ノードにプッシュすることを介して、前記第2の加入者ノードに複製するために使用される、
請求項15または請求項16に記載のピアツーピアデータ複製用のデバイス。
【請求項１８】
様々な加入者ノードを前記マスタノードと前記加入者ノードとの間の様々な接続にマッピングすること、および様々な接続を前記マスタノード内の各セットが複数の物理エンティティを含む物理エンティティの様々なセットにマッピングすること、およびさらに前記マスタノード内の物理エンティティの1つのセットを物理エンティティの前記セットに対応する前記加入者ノード内の様々な物理エンティティにマッピングすることによって、前記物理エンティティと前記加入者ノードとの間の前記マッピング関係を確立するように構成された第2のマッピングユニットをさらに備え、
前記複製ユニットが、詳細には、前記第1の物理エンティティに対応する第3の物理エンティティに、前記CSNを付加された前記第1のコミットリドゥレコードをプッシュするように構成され、前記第1の加入者ノードが、前記マスタノードと前記第1の加入者ノードとの間の接続を介して、前記第1の物理エンティティが属し、前記マスタノードの物理エンティティである物理エンティティの前記セットと前記第1の加入者ノードとの間の前記マッピング関係、および前記第1の物理エンティティと前記第3の物理エンティティとの間の前記マッピング関係に基づいて、前記第3の物理エンティティおよび第4の物理エンティティを含む少なくとも2つの物理エンティティであらかじめ設定され、前記第1のコミットリドゥレコードが、前記第1の書込み動作のデータを前記マスタノードから前記第1の物理エンティティに対応する前記第1の加入者ノードに複製し、次いで、前記第1の加入者ノードにより、前記受信された第1のコミットリドゥレコードを前記第2の加入者ノードにプッシュすることを介して、前記第2の加入者ノードに複製するために使用される、
請求項15または請求項16に記載のピアツーピアデータ複製用のデバイス。
【請求項１９】
前記複製ユニットが、新しい加入者ノードが前記マスタノードに接続されたとき、前記マスタノード内の物理エンティティ、および前記物理エンティティと前記新しい加入者ノードを含む前記加入者ノードとの間のマッピング関係が再構成された後、前記新しい加入者ノードにコミットリドゥレコードを同期させるようにさらに構成された、請求項15または請求項16に記載のピアツーピアデータ複製用のデバイス。
【請求項２０】
第1のコミットレコードが、関連する書込み動作が発生した物理エンティティに基づいて、第2の書込み動作が第2の物理エンティティ上で発生したとき前記デバイスによって生成された第2のコミットレコードから分離される、請求項15または請求項16に記載のピアツーピアデータ複製用のデバイス。
【請求項２１】
前記第1のコミットレコードおよび前記第2のコミットレコードが、前記複製ユニットにより並行して、それぞれ前記第1の加入者ノードおよび前記第2の加入者ノードにプッシュされ、その結果、前記第1のコミットレコードおよび前記第2のコミットレコードが、それぞれ前記第1の加入者ノードおよび前記第2の加入者ノードにより並行して再生され、第2のコミットリドゥレコードが、前記第2の書込み動作のデータを前記マスタノードから前記第2の物理エンティティに対応する前記第2の加入者ノードに複製し、次いで、前記第2の加入者ノードにより、受信された第2のコミットリドゥレコードを前記第1の加入者ノードにプッシュすることを介して、前記第1の加入者ノードに複製するために使用される、請求項20に記載のピアツーピアデータ複製用のデバイス。
【請求項２２】
加入者ノードに位置し、
マスタノード内で書込み動作の順番を示すために使用されるコミットシーケンス番号(CSN)を付加されたコミットリドゥレコードを、前記マスタノードから受信するように構成された受信ユニットと、
初期化中に0にセットされた前記加入者ノードのCSNを引いた、前記コミットリドゥレコードに付加された前記CSNの絶対値が1であるとき、前記加入者ノードの前記CSNを前記コミットリドゥレコードに付加された前記CSNに更新するように構成されたCSN処理ユニットと、
前記コミットリドゥレコードを再生して、マスタノード上で発生した書込み動作のデータを前記マスタノードから、前記マスタノードと前記マスタノードに接続された他の加入者ノードとに接続された前記加入者ノードに複製し、前記コミットリドゥレコードを他の加入者ノードにプッシュして、前記マスタノード上で発生した前記書込み動作の前記データを前記他の加入者ノードに複製するように構成された複製ユニットとを備える、ピアツーピアデータ複製用のデバイス。
【請求項２３】
前記CSN処理ユニットが、前記加入者ノードの前記CSNを引いた、前記受信されたコミットリドゥレコードに付加された前記CSNの前記絶対値が1でないとき、前記受信されたコミットリドゥレコードを保存し、別のコミットリドゥレコードを待つようにさらに構成され、
前記複製ユニットが、前記加入者ノードの更新されたCSNを引いた、前記受信されたコミットリドゥレコードに付加された前記CSNの前記絶対値が1である値に、前記加入者ノードの前記CSNが更新された後、前記コミットリドゥレコードを再生して、前記マスタノード上で発生した前記書込み動作のデータを前記マスタノードから前記加入者ノードに複製するようにさらに構成された、請求項22に記載のピアツーピアデータ複製用のデバイス。
【請求項２４】
前記複製ユニットが、すべての他の加入者ノードにプル要求を送信して、前記マスタノードがダウンし、前記加入者ノードが新しいマスタノードに選出された後、前記他の加入者ノード内で前記コミットリドゥレコードを再生することによって取得された、前記マスタノード上で発生した前記書込み動作のすべてのデータを取得するように構成され、
前記デバイスが、
前記加入者ノードが前記新しいマスタノードとして働くとき、前記新しいマスタノード内の物理エンティティと前記新しいマスタノードとして働く前記加入者ノードではない前記他の加入者ノードとの間のマッピング関係を再割当てするように構成されたマッピングユニット
をさらに備える、請求項22に記載のピアツーピアデータ複製用のデバイス。
【請求項２５】
前のマスタノードがダウンし、別の加入者ノードが新しいマスタノードに選出された後、前記複製ユニットが、前記新しいマスタノードによって送信されたプル要求に応答して、前記加入者ノード内の前記前のマスタノード上で発生した前記書込み動作の前記データを、前記新しいマスタノードとして働く加入者ノードに送信するようにさらに構成された、請求項22に記載のピアツーピアデータ複製用のデバイス。
【請求項２６】
加入者ノードに位置し、
前記加入者ノードとマスタノードが同じクラスタ内にあり、前記マスタノードがダウンしたとき、データ同期が終了するか、または前記データ同期用に事前構成された時間期間に到達するまで、前記加入者ノードと他の加入者ノードとの間で前記データ同期を実行するように構成された同期ユニットと、
複数の加入者ノードの最も高いコミットシーケンス番号(CSN)に基づいて、複数の加入者ノードから加入者ノードが新しいマスタノードに選出された後、前記新しいマスタノードに選出されなかった残りの加入者ノードにプル要求を送信するように構成された送信ユニットと、
前記新しいマスタノードに選出されなかった残りの加入者ノードからデータを受信するように構成された受信ユニットと
を備える、マスタノード切替え用のデバイス。
【請求項２７】
前記加入者ノードが前記新しいマスタノードとして働くとき、前記新しいマスタノード内の物理エンティティと前記加入者ノードではない前記他の加入者ノードとの間のマッピング関係を確立するように構成されたマッピングユニットをさらに備え、
前記同期ユニットが、書込み動作が新しい前記マスタノード内の前記物理エンティティ上で発生したとき、前記マッピング関係に従って、前記新しいマスタノードと前記新しいマスタノードに選出されなかった前記他の加入者ノードとの間のピアツーピアデータ複製を実行するようにさらに構成された、
請求項26に記載のマスタノード切替え用のデバイス。
【請求項２８】
加入者ノードに位置し、
前記加入者ノードとマスタノードが同じクラスタ内にあり、前記マスタノードがダウンしたとき、データ同期が終了するか、または前記データ同期用に事前構成された時間期間に到達するまで、前記加入者ノードと他の加入者ノードとの間で前記データ同期を実行するように構成された同期ユニットと、
前記他の加入者ノードと一緒に、複数の加入者ノードの最も高いコミットシーケンス番号(CSN)に基づいて、複数の加入者ノードからある加入者ノードを新しいマスタノードに選出するように構成された選出ユニットと、
前記加入者ノードが前記新しいマスタノードに選出されなかったとき、前記新しいマスタノードによって発行されたプル要求を受信するように構成された受信ユニットと、
前記加入者ノードが前記新しいマスタノードに選出されなかったとき、前記新しいマスタノードによって送信された前記プル要求に応答して、前記加入者ノード内のデータを前記新しいマスタノードに送信するように構成された送信ユニットと
を備える、マスタノード切替え用のデバイス。
【請求項２９】
マスタノードに位置し、
プロセッサと前記プロセッサに結合されたメモリとを備え、
前記プロセッサが、
第1の物理エンティティおよび第2の物理エンティティを含む少なくとも2つの物理エンティティであらかじめ設定され、第1の加入者ノードおよび第2の加入者ノードを含む少なくとも2つの加入者ノードに接続されたマスタノード内の前記第1の物理エンティティ上で第1の書込み動作が発生したとき、前記マスタノード内で前記第1の書込み動作の順番を示すために使用されるコミットシーケンス番号(CSN)を付加された第1のコミットリドゥレコードを生成することと、
前記物理エンティティと前記加入者ノードとの間のマッピング関係に基づいて前記第1の物理エンティティに対応する第1の加入者ノードに、前記CSNを付加された前記第1のコミットリドゥレコードをプッシュすることとを行うように構成され、前記第1のコミットリドゥレコードが、前記第1の書込み動作のデータを前記マスタノードから前記第1の物理エンティティに対応する前記第1の加入者ノードに複製し、次いで、前記第1の加入者ノードにより、受信された第1のコミットリドゥレコードを前記第2の加入者ノードにプッシュすることを介して、前記第2の加入者ノードに複製するために使用される、
ピアツーピアデータ複製用のデバイス。
【請求項３０】
前記物理エンティティが、テーブル空間、デバイスファイル、ページ、および/またはパーティションである、請求項29に記載のピアツーピアデータ複製用のデバイス。
【請求項３１】
前記プロセッサが、
様々な加入者ノードを前記マスタノードと前記加入者ノードとの間の様々な接続にマッピングすること、および様々な接続を前記マスタノード内の各セットが1つまたは複数の物理エンティティを含む物理エンティティの様々なセットにマッピングすることによって、前記物理エンティティと前記加入者ノードとの間の前記マッピング関係を確立することと、
前記マスタノードと前記第1の加入者ノードとの間の接続を介して、前記第1の物理エンティティと前記第1の加入者ノードとの間の前記マッピング関係に基づいて前記第1の物理エンティティに対応する前記第1の加入者ノードに、前記CSNを付加された前記第1のコミットリドゥレコードをプッシュすることと
を行うようにさらに構成された、請求項29または請求項30に記載のピアツーピアデータ複製用のデバイス。
【請求項３２】
前記プロセッサが、
様々な加入者ノードを前記マスタノードと前記加入者ノードとの間の様々な接続にマッピングすること、および様々な接続を前記マスタノード内の各セットが複数の物理エンティティを含む物理エンティティの様々なセットにマッピングすること、およびさらに前記マスタノード内の物理エンティティの1つのセットを物理エンティティの前記セットに対応する前記加入者ノード内の様々な物理エンティティにマッピングすることによって、前記物理エンティティと前記加入者ノードとの間の前記マッピング関係を確立することと、
前記第1の物理エンティティに対応する第3の物理エンティティに、前記CSNを付加された第1のコミットリドゥレコードをプッシュすることとを行うようにさらに構成され、前記第1の加入者ノードが、前記マスタノードと前記第1の加入者ノードとの間の接続を介して、前記第1の物理エンティティが属し、前記マスタノードの物理エンティティである物理エンティティの前記セットと前記第1の加入者ノードとの間の前記マッピング関係、および前記第1の物理エンティティと前記第3の物理エンティティとの間の前記マッピング関係に基づいて、前記第3の物理エンティティおよび第4の物理エンティティを含む少なくとも2つの物理エンティティであらかじめ設定された、
請求項29または請求項30に記載のピアツーピアデータ複製用のデバイス。
【請求項３３】
前記プロセッサが、
新しい加入者ノードが前記マスタノードに接続されたとき、前記マスタノード内の物理エンティティ、および前記物理エンティティと前記新しい加入者ノードを含む前記加入者ノードとの間のマッピング関係が再構成された後、新しい加入者ノードにコミットリドゥレコードを同期させるようにさらに構成された、
請求項29または請求項30に記載のピアツーピアデータ複製用のデバイス。
【請求項３４】
第1のコミットレコードが、関連する書込み動作が発生した物理エンティティに基づいて、第2の書込み動作が第2の物理エンティティ上で発生したとき前記デバイスによって生成された第2のコミットレコードから分離される、請求項29または請求項30に記載のピアツーピアデータ複製用のデバイス。
【請求項３５】
前記第1のコミットレコードおよび前記第2のコミットレコードが、前記プロセッサにより並行して、それぞれ前記第1の加入者ノードおよび前記第2の加入者ノードにプッシュされ、その結果、前記第1のコミットレコードおよび前記第2のコミットレコードが、それぞれ前記第1の加入者ノードおよび前記第2の加入者ノードにより並行して再生され、第2のコミットリドゥレコードが、前記第2の書込み動作のデータを前記マスタノードから前記第2の物理エンティティに対応する前記第2の加入者ノードに複製し、次いで、前記第2の加入者ノードにより、受信された第2のコミットリドゥレコードを前記第1の加入者ノードにプッシュすることを介して、前記第1の加入者ノードに複製するために使用される、請求項34に記載のピアツーピアデータ複製用のデバイス。
【請求項３６】
加入者ノードに位置し、
プロセッサと前記プロセッサに結合されたメモリとを備え、
前記プロセッサが、
マスタノード内で書込み動作の順番を示すために使用されるコミットシーケンス番号(CSN)を付加されたコミットリドゥレコードを、前記マスタノードから受信することと、
初期化中に0にセットされた前記加入者ノードのCSNを引いた、前記コミットリドゥレコードに付加された前記CSNの絶対値が1であるとき、前記加入者ノードの前記CSNを前記コミットリドゥレコードに付加された前記CSNに更新することと、
前記コミットリドゥレコードを再生して、マスタノード上で発生した書込み動作のデータを前記マスタノードから、前記マスタノードと前記マスタノードに接続された他の加入者ノードとに接続された前記加入者ノードに複製することと、
前記コミットリドゥレコードを前記他の加入者ノードにプッシュして、前記マスタノード上で発生した前記書込み動作の前記データを前記他の加入者ノードに複製することと
を行うように構成された、ピアツーピアデータ複製用のデバイス。
【請求項３７】
前記プロセッサが、
前記加入者ノードの前記CSNを引いた、前記受信されたコミットリドゥレコードに付加された前記CSNの前記絶対値が1でないとき、前記受信されたコミットリドゥレコードを保存し、別のコミットリドゥレコードを待つことと、
前記加入者ノードの更新されたCSNを引いた、前記受信されたコミットリドゥレコードに付加された前記CSNの前記絶対値が1である値に、前記加入者ノードの前記CSNが更新された後、前記コミットリドゥレコードを再生して、前記マスタノード上で発生した前記書込み動作のデータを前記マスタノードから前記加入者ノードに複製することと
を行うようにさらに構成された、請求項36に記載のピアツーピアデータ複製用のデバイス。
【請求項３８】
前記プロセッサが、
すべての他の加入者ノードにプル要求を送信して、前記マスタノードがダウンし、前記加入者ノードが新しいマスタノードに選出された後、前記他の加入者ノード内で前記コミットリドゥレコードを再生することによって取得された、前記マスタノード上で発生した前記書込み動作のすべてのデータを取得することと、
前記加入者ノードが前記新しいマスタノードとして働くとき、前記新しいマスタノード内の物理エンティティと前記新しいマスタノードとして働く前記加入者ノードではない前記他の加入者ノードとの間のマッピング関係を再割当てすることと
を行うようにさらに構成された、請求項36に記載のピアツーピアデータ複製用のデバイス。
【請求項３９】
前記プロセッサが、
前のマスタノードがダウンし、別の加入者ノードが新しいマスタノードに選出された後、前記新しいマスタノードによって送信されたプル要求に応答して、前記加入者ノード内の前記前のマスタノード上で発生した前記書込み動作の前記データを、前記新しいマスタノードとして働く加入者ノードに送信すること
を行うようにさらに構成された、請求項36に記載のピアツーピアデータ複製用のデバイス。
【請求項４０】
加入者ノードに位置し、
プロセッサと前記プロセッサに結合されたメモリとを備え、
前記プロセッサが、
前記加入者ノードとマスタノードが同じクラスタ内にあり、前記マスタノードがダウンしたとき、データ同期が終了するか、または前記データ同期用に事前構成された時間期間に到達するまで、前記加入者ノードと他の加入者ノードとの間で前記データ同期を実行することと、
複数の加入者ノードの最も高いコミットシーケンス番号(CSN)に基づいて、複数の加入者ノードから加入者ノードが新しいマスタノードに選出された後、前記新しいマスタノードに選出されなかった残りの加入者ノードにプル要求を送信することと、
前記新しいマスタノードに選出されなかった残りの加入者ノードからデータを受信することと
を行うように構成された、マスタノード切替え用のデバイス。
【請求項４１】
前記プロセッサが、
前記加入者ノードが前記新しいマスタノードとして働くとき、前記新しいマスタノード内の物理エンティティと前記加入者ノードではない他の加入者ノードとの間のマッピング関係を確立することと、
書込み動作が前記新しいマスタノード内の前記物理エンティティ上で発生したとき、前記マッピング関係に従って、前記新しいマスタノードと前記新しいマスタノードに選出されなかった前記他の加入者ノードとの間のピアツーピアデータ複製を実行することと
を行うようにさらに構成された、請求項40に記載のマスタノード切替え用のデバイス。
【請求項４２】
加入者ノードに位置し、
プロセッサと前記プロセッサに結合されたメモリとを備え、
前記プロセッサが、
前記加入者ノードとマスタノードが同じクラスタ内にあり、前記マスタノードがダウンしたとき、データ同期が終了するか、または前記データ同期用に事前構成された時間期間に到達するまで、前記加入者ノードと他の加入者ノードとの間で前記データ同期を実行することと、
他の加入者ノードと一緒に、複数の加入者ノードの最も高いコミットシーケンス番号(CSN)に基づいて、複数の加入者ノードからある加入者ノードを新しいマスタノードに選出することと、
前記加入者ノードが前記新しいマスタノードに選出されなかったとき、前記新しいマスタノードによって発行されたプル要求を受信することと、
前記加入者ノードが前記新しいマスタノードに選出されなかったとき、前記新しいマスタノードによって送信されたプル要求に応答して、前記加入者ノード内のデータを新しいマスタノードに送信することと
を行うように構成された、マスタノード切替え用のデバイス。
【請求項４３】
マスタノードと、第1の加入者ノードおよび第2の加入者ノードを含む少なくとも2つの加入者ノードとを含み、
前記マスタノードに、請求項15〜21および請求項29〜35のうちのいずれか一項による、ピアツーピアデータ複製用のデバイスが位置し、
前記加入者ノードの各々に、請求項22〜25および請求項36〜39のうちのいずれか一項による、ピアツーピアデータ複製用のデバイスが位置する、
シングルマスタクラスタシステム。
【請求項４４】
マスタノードと少なくとも2つの加入者ノードとを含み、
前記加入者ノードの各々に、請求項26〜27および請求項40〜41のうちのいずれか一項による、マスタノード切替え用のデバイス、ならびに、請求項28または請求項42による、マスタノード切替え用のデバイスの両方が位置する、
シングルマスタクラスタシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ技術の分野に関し、詳細には、ピアツーピアデータ複製用の方法、デバイス、およびシステム、ならびにマスタノード切替え用の方法、デバイス、およびシステムに関する。
【背景技術】
【０００２】
多くの電気通信用途および企業用途では、シングルマスタの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  デバイス
【図１】
2016521427.tif 000003
【図２】
2016521427.tif 000004
【図３】
2016521427.tif 000005
【図４ａ】
2016521427.tif 000006
【図４ｂ】
2016521427.tif 000007
【図４ｃ】
2016521427.tif 000008
【図５】
2016521427.tif 000009
【図６】
2016521427.tif 000010
【図７】
2016521427.tif 000011
【図８】
2016521427.tif 000012
【図９】
2016521427.tif 000013
【図１０】
2016521427.tif 000014
【図１２】
2016521427.tif 000015
【図１３】
2016521427.tif 000016
【図１４】
2016521427.tif 000017
【図１５】
2016521427.tif 000018
【図１６】
2016521427.tif 000019
【図１７】
2016521427.tif 000020
【図１８】
2016521427.tif 000021
【図１９】
2016521427.tif 000022
【図２０】
2016521427.tif 000023
【図２１】
2016521427.tif 000024
【図２２】
2016521427.tif 000025
【図２３】
2016521427.tif 000026
【図２４】
2016521427.tif 000027
【図２５】
2016521427.tif 000028
【図２６】
2016521427.tif 000029
【図２７】
2016521427.tif 000030
【図２８】
2016521427.tif 000031
【図２９】
2016521427.tif 000032
【図１１】
2016521427.tif 000033
【手続補正書】
【提出日】平成27年2月20日(2015.2.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第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の物理エンティティに対応する第1の加入者ノードに、前記CSNを付加された前記第1のコミットリドゥレコードをプッシュする前記ステップが、
前記マスタノードにより、前記マスタノードと前記第1の加入者ノードとの間の接続を介して、前記第1の物理エンティティと前記第1の加入者ノードとの間の前記マッピング関係に基づいて前記第1の物理エンティティに対応する前記第1の加入者ノードに、前記CSNを付加された前記第1のコミットリドゥレコードをプッシュするステップを含む、
請求項1または請求項2に記載の方法。
【請求項４】
前記物理エンティティと前記加入者ノードとの間の前記マッピング関係が、前記マスタノードにより、様々な加入者ノードを前記マスタノードと前記加入者ノードとの間の様々な接続にマッピングすること、および様々な接続を前記マスタノード内の各セットが複数の物理エンティティを含む物理エンティティの様々なセットにマッピングすること、およびさらに前記マスタノード内の物理エンティティの1つのセットを物理エンティティの前記セットに対応する前記加入者ノード内の様々な物理エンティティにマッピングすることによって確立され、
前記マスタノードにより、前記物理エンティティと前記加入者ノードとの間のマッピング関係に基づいて前記第1の物理エンティティに対応する前記第1の加入者ノードに、前記CSNを付加された前記第1のコミットリドゥレコードをプッシュする前記ステップが、
前記マスタノードにより、前記第1の物理エンティティに対応する第3の物理エンティティに、前記CSNを付加された前記第1のコミットリドゥレコードをプッシュするステップを含み、前記第1の加入者ノードが、前記マスタノードと前記第1の加入者ノードとの間の接続を介して、前記第1の物理エンティティが属し、前記マスタノードの物理エンティティである物理エンティティの前記セットと前記第1の加入者ノードとの間の前記マッピング関係、および前記第1の物理エンティティと前記第3の物理エンティティとの間の前記マッピング関係に基づいて、前記第3の物理エンティティおよび第4の物理エンティティを含む少なくとも2つの物理エンティティであらかじめ設定された、
請求項1または請求項2に記載の方法。
【請求項５】
新しい加入者ノードが前記マスタノードに接続されたとき、
前記マスタノードにより、前記マスタノード内の物理エンティティ、および前記物理エンティティと前記新しい加入者ノードを含む前記加入者ノードとの間のマッピング関係が再構成された後、前記新しい加入者ノードにコミットリドゥレコードを同期させるステップ
をさらに含む、請求項1または請求項2に記載の方法。
【請求項６】
第1のコミットレコードが、関連する書込み動作が発生した物理エンティティに基づいて、第2の書込み動作が第2の物理エンティティ上で発生したとき前記マスタノードによって生成された第2のコミットレコードから分離される、請求項1または2に記載の方法。
【請求項７】
前記第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を引いた、前記受信されたコミットリドゥレコードに付加された前記CSNの前記絶対値が1でないとき、前記加入者ノードにより、前記受信されたコミットリドゥレコードを保存し、別のコミットリドゥレコードを待つステップと、
前記加入者ノードの更新されたCSNを引いた、前記受信されたコミットリドゥレコードに付加された前記CSNの前記絶対値が1である値に、前記加入者ノードの前記CSNが更新された後、前記加入者ノードにより、前記コミットリドゥレコードを再生して、前記マスタノード上で発生した前記書込み動作のデータを前記マスタノードから前記加入者ノードに複製するステップと
をさらに含む、請求項8に記載の方法。
【請求項１０】
前記加入者ノードにより、すべての他の加入者ノードにプル要求を送信して、前記マスタノードがダウンし、前記加入者ノードが新しいマスタノードに選出された後、前記他の加入者ノード内で前記コミットリドゥレコードを再生することによって取得された、前記マスタノード上で発生した前記書込み動作のすべてのデータを取得するステップと、
前記新しいマスタノードとして働く前記加入者ノードにより、前記新しいマスタノード内の物理エンティティと前記加入者ノードではない前記他の加入者ノードとの間のマッピング関係を再割当てするステップと
をさらに含む、請求項8に記載の方法。
【請求項１１】
前記加入者ノードにより、前のマスタノードがダウンし、別の加入者ノードが新しいマスタノードに選出された後、前記新しいマスタノードによって送信されたプル要求に応答して、前記加入者ノード内の前記前のマスタノード上で発生した前記書込み動作の前記データを、前記新しいマスタノードとして働く加入者ノードに送信するステップをさらに含む、請求項8に記載の方法。
【請求項１２】
マスタノードに位置し、
第1の物理エンティティおよび第2の物理エンティティを含む少なくとも2つの物理エンティティであらかじめ設定され、第1の加入者ノードおよび第2の加入者ノードを含む少なくとも2つの加入者ノードに接続されたマスタノード内の前記第1の物理エンティティ上で第1の書込み動作が発生したとき、前記マスタノード内で前記第1の書込み動作の順番を示すために使用されるコミットシーケンス番号(CSN)を付加された第1のコミットリドゥレコードを生成するように構成された生成ユニットと、
前記物理エンティティと前記加入者ノードとの間のマッピング関係に基づいて前記第1の物理エンティティに対応する第1の加入者ノードに、前記CSNを付加された前記第1のコミットリドゥレコードをプッシュするように構成された複製ユニットとを備え、前記第1のコミットリドゥレコードが、前記第1の書込み動作のデータを前記マスタノードから前記第1の物理エンティティに対応する前記第1の加入者ノードに複製し、次いで、前記第1の加入者ノードにより、受信された第1のコミットリドゥレコードを前記第2の加入者ノードにプッシュすることを介して、前記第2の加入者ノードに複製するために使用される、
ピアツーピアデータ複製用のデバイス。
【請求項１３】
前記物理エンティティが、テーブル空間、デバイスファイル、ページ、および/またはパーティションである、請求項12に記載のピアツーピアデータ複製用のデバイス。
【請求項１４】
様々な加入者ノードを前記マスタノードと前記加入者ノードとの間の様々な接続にマッピングすること、および様々な接続を前記マスタノード内の各セットが1つまたは複数の物理エンティティを含む物理エンティティの様々なセットにマッピングすることによって、前記物理エンティティと前記加入者ノードとの間の前記マッピング関係を確立するように構成された第1のマッピングユニットをさらに備え、
前記複製ユニットが、詳細には、前記マスタノードと前記第1の加入者ノードとの間の接続を介して、前記第1の物理エンティティと前記第1の加入者ノードとの間の前記マッピング関係に基づいて前記第1の物理エンティティに対応する前記第1の加入者ノードに、前記CSNを付加された前記第1のコミットリドゥレコードをプッシュするように構成され、前記第1のコミットリドゥレコードが、前記第1の書込み動作のデータを前記マスタノードから前記第1の物理エンティティに対応する前記第1の加入者ノードに複製し、次いで、前記第1の加入者ノードにより、前記受信された第1のコミットリドゥレコードを前記第2の加入者ノードにプッシュすることを介して、前記第2の加入者ノードに複製するために使用される、
請求項12または請求項13に記載のピアツーピアデータ複製用のデバイス。
【請求項１５】
様々な加入者ノードを前記マスタノードと前記加入者ノードとの間の様々な接続にマッピングすること、および様々な接続を前記マスタノード内の各セットが複数の物理エンティティを含む物理エンティティの様々なセットにマッピングすること、およびさらに前記マスタノード内の物理エンティティの1つのセットを物理エンティティの前記セットに対応する前記加入者ノード内の様々な物理エンティティにマッピングすることによって、前記物理エンティティと前記加入者ノードとの間の前記マッピング関係を確立するように構成された第2のマッピングユニットをさらに備え、
前記複製ユニットが、詳細には、前記第1の物理エンティティに対応する第3の物理エンティティに、前記CSNを付加された前記第1のコミットリドゥレコードをプッシュするように構成され、前記第1の加入者ノードが、前記マスタノードと前記第1の加入者ノードとの間の接続を介して、前記第1の物理エンティティが属し、前記マスタノードの物理エンティティである物理エンティティの前記セットと前記第1の加入者ノードとの間の前記マッピング関係、および前記第1の物理エンティティと前記第3の物理エンティティとの間の前記マッピング関係に基づいて、前記第3の物理エンティティおよび第4の物理エンティティを含む少なくとも2つの物理エンティティであらかじめ設定され、前記第1のコミットリドゥレコードが、前記第1の書込み動作のデータを前記マスタノードから前記第1の物理エンティティに対応する前記第1の加入者ノードに複製し、次いで、前記第1の加入者ノードにより、前記受信された第1のコミットリドゥレコードを前記第2の加入者ノードにプッシュすることを介して、前記第2の加入者ノードに複製するために使用される、
請求項12または請求項13に記載のピアツーピアデータ複製用のデバイス。
【請求項１６】
前記複製ユニットが、新しい加入者ノードが前記マスタノードに接続されたとき、前記マスタノード内の物理エンティティ、および前記物理エンティティと前記新しい加入者ノードを含む前記加入者ノードとの間のマッピング関係が再構成された後、前記新しい加入者ノードにコミットリドゥレコードを同期させるようにさらに構成された、請求項12または請求項13に記載のピアツーピアデータ複製用のデバイス。
【請求項１７】
第1のコミットレコードが、関連する書込み動作が発生した物理エンティティに基づいて、第2の書込み動作が第2の物理エンティティ上で発生したとき前記デバイスによって生成された第2のコミットレコードから分離される、請求項12または請求項13に記載のピアツーピアデータ複製用のデバイス。
【請求項１８】
前記第1のコミットレコードおよび前記第2のコミットレコードが、前記複製ユニットにより並行して、それぞれ前記第1の加入者ノードおよび前記第2の加入者ノードにプッシュされ、その結果、前記第1のコミットレコードおよび前記第2のコミットレコードが、それぞれ前記第1の加入者ノードおよび前記第2の加入者ノードにより並行して再生され、第2のコミットリドゥレコードが、前記第2の書込み動作のデータを前記マスタノードから前記第2の物理エンティティに対応する前記第2の加入者ノードに複製し、次いで、前記第2の加入者ノードにより、受信された第2のコミットリドゥレコードを前記第1の加入者ノードにプッシュすることを介して、前記第1の加入者ノードに複製するために使用される、請求項17に記載のピアツーピアデータ複製用のデバイス。
【請求項１９】
加入者ノードに位置し、
マスタノード内で書込み動作の順番を示すために使用されるコミットシーケンス番号(CSN)を付加されたコミットリドゥレコードを、前記マスタノードから受信するように構成された受信ユニットと、
初期化中に0にセットされた前記加入者ノードのCSNを引いた、前記コミットリドゥレコードに付加された前記CSNの絶対値が1であるとき、前記加入者ノードの前記CSNを前記コミットリドゥレコードに付加された前記CSNに更新するように構成されたCSN処理ユニットと、
前記コミットリドゥレコードを再生して、マスタノード上で発生した書込み動作のデータを前記マスタノードから、前記マスタノードと前記マスタノードに接続された他の加入者ノードとに接続された前記加入者ノードに複製し、前記コミットリドゥレコードを他の加入者ノードにプッシュして、前記マスタノード上で発生した前記書込み動作の前記データを前記他の加入者ノードに複製するように構成された複製ユニットとを備える、ピアツーピアデータ複製用のデバイス。
【請求項２０】
前記CSN処理ユニットが、前記加入者ノードの前記CSNを引いた、前記受信されたコミットリドゥレコードに付加された前記CSNの前記絶対値が1でないとき、前記受信されたコミットリドゥレコードを保存し、別のコミットリドゥレコードを待つようにさらに構成され、
前記複製ユニットが、前記加入者ノードの更新されたCSNを引いた、前記受信されたコミットリドゥレコードに付加された前記CSNの前記絶対値が1である値に、前記加入者ノードの前記CSNが更新された後、前記コミットリドゥレコードを再生して、前記マスタノード上で発生した前記書込み動作のデータを前記マスタノードから前記加入者ノードに複製するようにさらに構成された、請求項19に記載のピアツーピアデータ複製用のデバイス。
【請求項２１】
前記複製ユニットが、すべての他の加入者ノードにプル要求を送信して、前記マスタノードがダウンし、前記加入者ノードが新しいマスタノードに選出された後、前記他の加入者ノード内で前記コミットリドゥレコードを再生することによって取得された、前記マスタノード上で発生した前記書込み動作のすべてのデータを取得するように構成され、
前記デバイスが、
前記加入者ノードが前記新しいマスタノードとして働くとき、前記新しいマスタノード内の物理エンティティと前記新しいマスタノードとして働く前記加入者ノードではない前記他の加入者ノードとの間のマッピング関係を再割当てするように構成されたマッピングユニット
をさらに備える、請求項19に記載のピアツーピアデータ複製用のデバイス。
【請求項２２】
前のマスタノードがダウンし、別の加入者ノードが新しいマスタノードに選出された後、前記複製ユニットが、前記新しいマスタノードによって送信されたプル要求に応答して、前記加入者ノード内の前記前のマスタノード上で発生した前記書込み動作の前記データを、前記新しいマスタノードとして働く加入者ノードに送信するようにさらに構成された、請求項19に記載のピアツーピアデータ複製用のデバイス。
【請求項２３】
マスタノードと、第1の加入者ノードおよび第2の加入者ノードを含む少なくとも2つの加入者ノードとを含み、
請求項12〜18のいずれか一項による、ピアツーピアデータ複製用のデバイスが前記マスタノードに位置し、
請求項19〜22のいずれか一項による、ピアツーピアデータ複製用のデバイスが前記加入者ノードの各々に位置する、
シングルマスタクラスタシステム。
【国際調査報告】
2016521427.tif 000034
2016521427.tif 000035