本発明の実施形態は、ピアツーピアモードで複製を配信することによって、複製クラスタ内のマスタノードから複製ボトルネックを軽減するために、ピアツーピアデータ複製用の方法、デバイス、およびシステム、ならびにマスタノード切替え用の方法、デバイス、およびシステムを提供する。
本発明の実施形態は、以下の技術的解決策を採用する。
本発明の第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つの加入者ノードのみによってプッシュすることを介して他の加入者ノードにプッシュされ、それにより、マスタノードと加入者ノードとの間の伝送が低減され、こうして、複製クラスタ内のマスタノードから複製ボトルネックが軽減される。
本発明の実施形態によって提供されたマスタノード切替え用の方法、デバイス、およびシステムによれば、マスタノードがダウンしたとき、加入者ノードは、加入者ノードを含むクラスタを迅速に回復させ、作業に復帰させる能力を有する。
本発明の実施形態および従来技術における技術的解決策をより明確に説明するために、実施形態および従来技術で必要とされる添付図面が以下で簡潔に説明される。添付図面が本発明のいくつかの実施形態にすぎないことは明白であり、当業者は、創造的な努力なしに添付図面に従って他の図面を取得することができる。
本発明の実施形態における技術的解決策は、本発明の実施形態における添付図面を参照して、以下で明確かつ十分に記載される。明らかに、記載されるべき実施形態は、本発明の実施形態のすべてではなく一部にすぎない。本発明の実施形態に基づいて、創造的な努力なしに当業者によって取得されるすべての他の実施形態は、本発明の保護範囲に入るべきである。
本発明の実施形態は、ピアツーピアデータ複製用の方法を提供する。図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とマークされた)デバイスの両方とを含む。
本発明の実施形態によるピアツーピアデータ複製用のデバイスにより、ピアツーピアデータ複製を実行することの詳細は、上記の方法実施形態を参照されたく、ここでは繰り返さない。
本発明の実施形態によって提供されたシングルマスタクラスタシステムによれば、マスタノードがダウンしたとき、加入者ノードは、加入者ノードを含むクラスタを迅速に回復させ、作業に復帰させる能力を有する。
上記は、本発明の特定の実施形態にすぎない。しかしながら、本発明の保護範囲はそれらに限定されない。本発明によって開示された技術的範囲内にあり、当業者が容易に思い付くことができる任意の改変または置換は、本発明の保護範囲内にカバーされるべきである。したがって、本発明の保護範囲は、特許請求の範囲の中の記述によって決定されるべきである。