(57)【特許請求の範囲】
【請求項１】
プライマリデータベースおよび複数のセカンダリデータベースを維持するための、コンピュータで実行される方法であって、前記プライマリデータベースおよび前記複数のセカンダリデータベースがロックを共有し、前記コンピュータで実行される方法は、
前記プライマリデータベースによって保持される前記ロックが失効したと判定するステップを含み、
前記ロックの有効期間が失効する前に、前記有効期間を延長するように、前記ロックが更新され、
前記ロックが、第1の期間T1を有する更新周期の間に更新され、
前記プライマリデータベースが、第2の期間T2を有する周期で、前記ロックの状態を照会するためのロック要求を送信し、
前記複数のセカンダリデータベースのうちの特定のセカンダリデータベースが、第3の期間T3を有する周期で、前記ロックの前記状態を照会するためのロック要求を送信し、
前記第2の期間T2が、前記第1の期間T1よりも短く、
前記第3の期間T3が、前記第1の期間T1よりも長いまたは等しく、
前記方法は、
前記プライマリデータベースによって保持される前記ロックが失効したとの判定に応答して、前記ロックが失効した後に、前記プライマリデータベースのロック更新要求が受信されていないと判定するステップと、
前記プライマリデータベースの前記ロック更新要求が受信されていないとの判定に応答して、前記特定のセカンダリデータベースを新たなプライマリデータベースとして選択するステップ、および前記プライマリデータベースが前記セカンダリデータベースに切り替えられるように制御するステップとを含む、
コンピュータで実行される方法。
【請求項２】
ロック失効通知を前記特定のセカンダリデータベースに送信するステップと、
前記ロック失効通知に基づいて、前記特定のセカンダリデータベースからのロック要求を受信するステップ、および前記ロック要求の受信時間を記録するステップとをさらに含む、
請求項１に記載のコンピュータで実行される方法。
【請求項３】
前記特定のセカンダリデータベースを選択するステップが、
前記複数のセカンダリデータベースのうちの、最も早い受信時間を有するセカンダリデータベースを選択するステップを含む、
請求項２に記載のコンピュータで実行される方法。
【請求項４】
前記プライマリデータベースの優先度が、前記特定のセカンダリデータベースの優先度よりも高い、
請求項１に記載のコンピュータで実行される方法。
【請求項５】
前記特定のセカンダリデータベースが、ホットスタンバイデータベースおよびディザスタリカバリデータベースを含み、
前記プライマリデータベースおよび前記ホットスタンバイデータベースが、同一のデータセンタに位置し、
前記プライマリデータベースおよび前記ディザスタリカバリデータベースが、異なるデータセンタに位置する、
請求項１に記載のコンピュータで実行される方法。
【請求項６】
前記プライマリデータベースのメンテナンスまたはアップグレードのうちの少なくとも一方を含む動作を実行するステップをさらに含む、
請求項１に記載のコンピュータで実行される方法。
【請求項７】
前記プライマリデータベースのメンテナンスまたはアップグレードのうちの少なくとも一方を含む動作が完了したかどうかを判定するステップと、
前記プライマリデータベースのメンテナンスまたはアップグレードのうちの少なくとも一方を含む動作が完了したとの判定に応答して、前記プライマリデータベースを復元するステップをさらに含む、
請求項６に記載のコンピュータで実行される方法。
【請求項８】
前記プライマリデータベースが復元された後に、前記方法は、
元のプライマリデータベースによって送信されたロック要求を受信するステップ、および前記ロックが失効した後に、前記元のプライマリデータベースによって保持されるように前記ロックを制御するステップをさらに含み、
前記元のプライマリデータベースが、前記プライマリデータベースに復元され、
現在のプライマリデータベースが、前記複数のセカンダリデータベースのうちの1つに復元される、
請求項７に記載のコンピュータで実行される方法。
【請求項９】
前記現在のプライマリデータベースによって保持されるロックが失効したかどうかを判定し続けるステップと、
前記現在のプライマリデータベースによって保持される前記ロックが失効したとの判定に応答して、前記元のプライマリデータベースのロック要求、前記現在のプライマリデータベースのロック要求、および他の複数のセカンダリデータベースのロック要求が受信されたかどうかを判定するステップをさらに含む、
請求項８に記載のコンピュータで実行される方法。
【請求項１０】
前記元のプライマリデータベースの前記ロック要求が受信されたとの判定に応答して、前記元のプライマリデータベースを前記プライマリデータベースに復元するステップ、および前記現在のプライマリデータベースを前記複数のセカンダリデータベースのうちの1つに復元するステップをさらに含む、
請求項８に記載のコンピュータで実行される方法。
【請求項１１】
前記元のプライマリデータベースのロック要求が受信されておらずかつ前記現在のプライマリデータベースのロック要求および他の複数のセカンダリデータベースのロック要求が受信されたとの判定に応答して、前記現在のプライマリデータベースを前記プライマリデータベースとして維持するステップをさらに含む、
請求項８に記載のコンピュータで実行される方法。
【請求項１２】
前記元のプライマリデータベースのロック要求および前記現在のプライマリデータベースのロック要求が受信されておらずかつ他の複数のセカンダリデータベースのロック要求が受信されたとの判定に応答して、前記他の複数のセカンダリデータベースのうちの1つを前記プライマリデータベースとして選択するステップ、および前記現在のプライマリデータベースを前記複数のセカンダリデータベースのうちの1つに復元するステップをさらに含む、
請求項８に記載のコンピュータで実行される方法。
【請求項１３】
プライマリデータベースおよび複数のセカンダリデータベースを維持する動作を実行するコンピュータシステムによって実行可能な1つまたは複数の命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記プライマリデータベースおよび前記複数のセカンダリデータベースが、ロックを共有し、前記動作が、
プライマリデータベースによって保持される前記ロックが失効したと判定するステップを含み、
前記ロックの有効期間が失効する前に、前記有効期間を延長するように、前記ロックが更新され、
前記ロックが、第1の期間T1を有する更新周期の間に更新され、
前記プライマリデータベースが、第2の期間T2を有する周期で、前記ロックの状態を照会するためのロック要求を送信し、
前記複数のセカンダリデータベースのうちの特定のセカンダリデータベースが、第3の期間T3を有する第3の期間T3で、前記ロックの前記状態を照会するためのロック要求を送信し、
前記第2の期間T2が、前記第1の期間T1よりも短く、
前記第3の期間T3が、前記第1の期間T1よりも長いまたは等しく、
前記動作が、
前記プライマリデータベースによって保持される前記ロックが失効したとの判定に応答して、前記ロックが失効した後に、前記プライマリデータベースのロック更新要求が受信されていないと判定するステップと、
前記プライマリデータベースの前記ロック更新要求が受信されていないとの判定に応答して、前記特定のセカンダリデータベースを新たなプライマリデータベースとして選択するステップ、および前記プライマリデータベースが前記セカンダリデータベースに切り替えられるように制御するステップを含む、
非一時的コンピュータ可読記憶媒体。
【請求項１４】
前記動作が、
ロック失効通知を前記特定のセカンダリデータベースに送信するステップと、
前記ロック失効通知に基づいて、前記特定のセカンダリデータベースからのロック要求を受信するステップ、および前記ロック要求の受信時間を記録するステップとをさらに含む、
請求項１３に記載の非一時的コンピュータ可読記憶媒体。
【請求項１５】
前記特定のセカンダリデータベースを選択するステップが、
前記複数のセカンダリデータベースのうちの、最も早い受信時間を有するセカンダリデータベースを選択するステップを含む、
請求項１４に記載の非一時的コンピュータ可読記憶媒体。
【請求項１６】
前記プライマリデータベースの優先度が、前記特定のセカンダリデータベースの優先度よりも高い、
請求項１３に記載の非一時的コンピュータ可読記憶媒体。
【請求項１７】
プライマリデータベースおよび複数のセカンダリデータベースを維持するための、コンピュータが実装されたシステムであって、前記プライマリデータベースおよび前記複数のセカンダリデータベースが、ロックを共有し、前記システムは、
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータと相互動作可能に結合した1つまたは複数のコンピュータメモリ装置であって、前記1つまたは複数のコンピュータによって実行された場合に、以下の1つまたは複数の動作を行うための1つまたは複数の命令を記憶している有形の非一時的マシン可読記憶媒体を有する1つまたは複数のコンピュータメモリ装置とを備え、前記動作が、
プライマリデータベースによって保持される前記ロックが失効したと判定するステップを含み、
前記ロックの有効期間が失効する前に、前記有効期間を延長するように、前記ロックが更新され、
前記ロックが、第1の期間T1を有する更新周期の間に更新され、
前記プライマリデータベースが、第2の期間T2を有する周期で、前記ロックの状態を照会するためのロック要求を送信し、
前記セカンダリデータベースのうちの特定のセカンダリデータベースが、第3の期間T3を有する第3の期間T3で、前記ロックの前記状態を照会するためのロック要求を送信し、
前記第2の期間T2が、前記第1の期間T1よりも短く、
前記第3の期間T3が、前記第1の期間T1よりも長いまたは等しく、
前記動作が、
前記プライマリデータベースによって保持される前記ロックが失効したとの判定に応答して、前記ロックが失効した後に、前記プライマリデータベースのロック更新要求が受信されていないと判定するステップと、
前記プライマリデータベースの前記ロック更新要求が受信されていないとの判定に応答して、前記特定のセカンダリデータベースを新たなプライマリデータベースとして選択するステップ、および前記プライマリデータベースが前記セカンダリデータベースに切り替えられるように制御するステップとを含む、
システム。
【請求項１８】
前記動作が、
ロック失効通知を前記特定のセカンダリデータベースに送信するステップと、
前記ロック失効通知に基づいて、前記特定のセカンダリデータベースからのロック要求を受信するステップ、および前記ロック要求の受信時間を記録するステップとをさらに含む、
請求項１７に記載のシステム。
【請求項１９】
前記特定のセカンダリデータベースを選択するステップが、
前記複数のセカンダリデータベースのうちの、最も早い受信時間を有するセカンダリデータベースを選択するステップを含む、
請求項１８に記載のシステム。
【請求項２０】
前記プライマリデータベースの優先度が、前記特定のセカンダリデータベースの優先度よりも高い、
請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、情報セキュリティ技術の分野に関し、特に、プライマリおよびセカンダリデータベースを管理する方法、システム、および装置に関する。
【背景技術】
【０００２】
データベースは、金融、商業、輸送などの分野において、および社会全体においてでさえも、重要な基盤である。データベースの連続可用性は、金融および商業分野などの分野において、サービスがユーザに連続的に提供され得ることを保証し得る。単一のデータベースに欠陥があることを防止し、データベースの可用性を改善するために、通常は、プライマリデータベースおよびセカンダリデータベースが構成される。プライマリデータベースに欠陥があるとき、ユーザにサービスし続けるために、プライマリデータベースがセカンダリデータベースに切り替えられる。
【０００３】
関連技術において、プライマリデータベースとセカンダリデータベースとの間の切り替えは、自動的であり得る。すなわち、プライマリデータベースのためにモニタリングシステムが配備され、プライマリデータベースが異常であることを発見すると、モニタリングシステムが、警告およびプライマリデータベースとセカンダリデータベースとの間の切り替えのためのコマンドを送信する。
【０００４】
しかしながら、プライマリデータベースとセカンダリデータベースとの間の切り替えのための前述の方法においては、誤判定に起因して以下の事例、プライマリデータベースに欠陥がないときにプライマリデータベースが切り替えられる、またはプライマリデータベースに欠陥があるが、切り替えられない、ということが発生し得る。その結果、ユーザに提供される正常なサービスが影響を受ける。
【発明の概要】
【課題を解決するための手段】
【０００５】
本出願は、前述の技術的問題のうちの1つを、少なくともある程度軽減することを意図している。
【０００６】
したがって、本出願の第1の目的は、プライマリおよびセカンダリデータベースを管理する方法を提供することである。方法によれば、プライマリデータベースによって保持されるロックが失効する前に、プライマリデータベースがロック更新要求を送信しない場合、プライマリデータベースによって保持されるロックが無効であり、かつプライマリデータベースがユーザに正常にサービスできないと判定され、したがって、セカンダリデータベースが、新たなプライマリデータベースとして選択され、それによって、プライマリデータベースとセカンダリデータベースとの間の切り替え速度および正確性を改善する。
【０００７】
本出願の第2の目的は、ロック調停サーバを提供することである。
【０００８】
本出願の第3の目的は、プライマリデータベースサーバを提供することである。
【０００９】
本出願の第4の目的は、セカンダリデータベースサーバを提供することである。
【００１０】
本出願の第5の目的は、プライマリおよびセカンダリデータベースを管理するシステムを提供することである。
【００１１】
前述の目的を達成するために、本出願の第1の態様の実施におけるプライマリおよびセカンダリデータベースを管理する方法は、プライマリデータベースによって保持されるロックが失効するかどうかを判定するステップであって、プライマリデータベースおよびセカンダリデータベースがロックを共有する、ステップと、プライマリデータベースによって保持されるロックが失効したと判定する場合に、プライマリデータベースのロック更新要求が受信されるかどうかを判定するステップと、プライマリデータベースのロック更新要求が受信されない場合に、セカンダリデータベースのうちの1つを新たなプライマリデータベースとして選択するステップ、およびプライマリデータベースをセカンダリデータベースに切り替えられるように制御するステップと、を含む。
【００１２】
本出願の本実施におけるプライマリおよびセカンダリデータベースを管理する方法によれば、プライマリデータベースによって保持されるロックが失効するかどうかが判定される。プライマリデータベースによって保持されるロックが失効したと判定される場合、プライマリデータベースのロック更新要求が受信されるかどうかが判定される。ロック更新要求が受信されない場合、セカンダリデータベースのうちの1つが新たなプライマリデータベースとして選択され、プライマリデータベースが、セカンダリデータベースに切り替えられるように制御される。方法によれば、プライマリデータベースによって保持されるロックが失効する前に、プライマリデータベースがロック更新要求を送信しない場合、プライマリデータベースによって保持されるロックが無効であり、かつプライマリデータベースがユーザに正常にサービスできないと判定され、したがって、セカンダリデータベースが、新たなプライマリデータベースとして選択され、それによって、プライマリデータベースとセカンダリデータベースとの間の切り替え速度および正確性を改善する。
【００１３】
さらに、本出願の本実施におけるプライマリおよびセカンダリデータベースを管理する方法は、以下の追加の技術的特徴をさらに有する。
【００１４】
本出願の実施において、プライマリデータベースによって保持されるロックが失効したとの判定の後で、方法は、ロック失効通知をセカンダリデータベースに送信するステップと、ロック失効通知に基づいて、セカンダリデータベースによって送信されたロック要求を受信するステップ、およびロック要求の受信時間を記録するステップと、をさらに含む。
【００１５】
本出願の実施において、セカンダリデータベースのうちの1つをプライマリデータベースとして選択するステップは、プライマリデータベースとして、最も早い受信時間を有するセカンダリデータベースを選択するステップをさらに含む。
【００１６】
本出願の実施において、プライマリデータベースの優先度が、セカンダリデータベースの優先度よりも高い。
【００１７】
本出願の実施において、ロックの更新周期がT1であり、プライマリデータベースが、ロックの状態を問い合わせるためのロック要求を周期T2で送信し、セカンダリデータベースが、ロックの状態を問い合わせるためのロック要求を周期T3で送信し、T2がT1より小さく、T3がT1以上である。
【００１８】
本出願の実施において、セカンダリデータベースが、ホットスタンバイデータベースおよびディザスタリカバリデータベースを含み、プライマリデータベースおよびホットスタンバイデータベースが、同一のデータセンタに位置し、プライマリデータベースおよびディザスタリカバリデータベースが、異なるデータセンタに位置する。
【００１９】
本出願の実施において、元のプライマリデータベースが復元された後で、方法は、元のプライマリデータベースによって送信されたロック要求を受信するステップと、元のプライマリデータベースがプライマリデータベースに復元され、現在のプライマリデータベースがセカンダリデータベースに復元されるように、ロックが失効した後に元のプライマリデータベースによって保持されるようにロックを制御するステップと、をさらに含む。
【００２０】
本出願の実施において、セカンダリデータベースのうちの1つを新たなプライマリデータベースとして選択するステップの後で、方法は、現在のプライマリデータベースによって保持されるロックが失効するかどうかを判定し続けるステップと、現在のプライマリデータベースによって保持されるロックが失効した場合に、元のプライマリデータベース、現在のプライマリデータベース、および他のセカンダリデータベースのロック要求が受信されるかどうかを判定するステップと、元のプライマリデータベースのロック要求が受信される場合に、元のプライマリデータベースをプライマリデータベースに復元するステップ、および現在のプライマリデータベースをセカンダリデータベースに復元するステップ、または元のプライマリデータベースのロック要求が受信されず、かつ現在のプライマリデータベースおよび他のセカンダリデータベースのロック要求が受信される場合に、現在のプライマリデータベースをプライマリデータベースとして維持するステップ、または元のプライマリデータベースおよび現在のプライマリデータベースのロック要求が受信されず、かつ他のセカンダリデータベースのロック要求が受信される場合に、他のセカンダリデータベースのうちの1つをプライマリデータベースとして選択するステップ、および現在のプライマリデータベースをセカンダリデータベースに復元するステップと、をさらに含む。
【００２１】
前述の目的を達成するために、本出願の第2の態様の実施におけるロック調停サーバは、プライマリデータベースによって保持されるロックが失効するかどうかを判定するように構成される第1の判定モジュールであって、プライマリデータベースおよびセカンダリデータベースがロックを共有する、第1の判定モジュールと、プライマリデータベースによって保持されるロックが失効したときに、プライマリデータベースのロック更新要求が受信されるかどうかを判定するように構成される、第2の判定モジュールと、プライマリデータベースのロック更新要求が受信されないときに、セカンダリデータベースのうちの1つを新たなプライマリデータベースとして選択し、プライマリデータベースをセカンダリデータベースに切り替えられるように制御するように構成される、第1の処理モジュールと、を含む。
【００２２】
本出願の本実施におけるロック調停サーバは、プライマリデータベースによって保持されるロックが失効するかどうかを判定する。プライマリデータベースによって保持されるロックが失効したと判定する場合、サーバは、プライマリデータベースのロック更新要求が受信されるかどうかを判定する。ロック更新要求が受信されない場合、サーバは、セカンダリデータベースのうちの1つを新たなプライマリデータベースとして選択し、プライマリデータベースをセカンダリデータベースに切り替えられるように制御する。プライマリデータベースによって保持されるロックが失効する前に、プライマリデータベースがロック更新要求を送信しない場合、サーバは、プライマリデータベースによって保持されるロックが無効であり、かつプライマリデータベースがユーザに正常にサービスできないと判定し、したがって、セカンダリデータベースが、新たなプライマリデータベースとして選択される。それによって、プライマリデータベースとセカンダリデータベースとの間の切り替え速度および正確性を改善する。
【００２３】
さらに、本出願の本実施におけるロック調停サーバは、以下の追加の技術的特徴を有する。
【００２４】
本出願の実施において、第1の処理モジュールは、プライマリデータベースとして、最も早い受信時間を有するセカンダリデータベースを選択するように構成される。
【００２５】
本出願の実施において、プライマリデータベースの優先度が、セカンダリデータベースの優先度よりも高い。
【００２６】
本出願の実施において、ロックの更新周期がT1であり、プライマリデータベースが、ロックの状態を問い合わせるためのロック要求を周期T2で送信し、セカンダリデータベースが、ロックの状態を問い合わせるためのロック要求を周期T3で送信し、T2がT1より小さく、T3がT1以上である。
【００２７】
本出願の実施において、セカンダリデータベースが、ホットスタンバイデータベースおよびディザスタリカバリデータベースを含み、プライマリデータベースおよびホットスタンバイデータベースが、同一のデータセンタに位置し、プライマリデータベースおよびディザスタリカバリデータベースが、異なるデータセンタに位置する。
【００２８】
本出願の実施において、ロック調停サーバは、元のプライマリデータベースが復元された後で、元のプライマリデータベースによって送信されたロック要求を受信するように構成される、第1の受信モジュールをさらに含み、第1の処理モジュールは、元のプライマリデータベースがプライマリデータベースに復元され、現在のプライマリデータベースが、セカンダリデータベースに復元されるように、ロックが失効した後に元のプライマリデータベースによって保持されるようにロックを制御するようにさらに構成される。
【００２９】
本出願の実施において、第1の判定モジュールは、現在のプライマリデータベースによって保持されるロックが失効するかどうかを判定し続けるようにさらに構成され、第2の判定モジュールは、現在のプライマリデータベースによって保持されるロックが失効したときに、元のプライマリデータベース、現在のプライマリデータベース、および他のセカンダリデータベースのロック要求が受信されるかどうかを判定するようにさらに構成され、第2の処理モジュールは、元のプライマリデータベースのロック要求が受信されるときに、元のプライマリデータベースをプライマリデータベースに復元し、現在のプライマリデータベースをセカンダリデータベースに復元するように構成され、第3の処理モジュールは、元のプライマリデータベースのロック要求が受信されず、かつ現在のプライマリデータベースおよび他のセカンダリデータベースのロック要求が受信されるときに、現在のプライマリデータベースをプライマリデータベースとして維持するように構成され、第4の処理モジュールは、元のプライマリデータベースおよび現在のプライマリデータベースのロック要求が受信されず、かつ他のセカンダリデータベースのロック要求が受信されるときに、他のセカンダリデータベースのうちの1つをプライマリデータベースとして選択し、現在のプライマリデータベースをセカンダリデータベースに復元するように構成される。
【００３０】
前述の目的を達成するために、本出願の第3の態様の実施におけるプライマリデータベースサーバは、ロック調停サーバがロック更新要求を受信しないときに、ロック調停サーバがセカンダリデータベースのうちの1つを新たなプライマリデータベースとして選択するように、プライマリデータベースによって保持されるロックが失効するときに、ロック更新要求をロック調停サーバに送信するように構成される、第2の送信モジュールと、プライマリデータベースをセカンダリデータベースに切り替えられるように制御するように構成される、切替モジュールと、を含む。
【００３１】
プライマリデータベースによって保持されるロックが失効するとき、本出願の本実施におけるプライマリデータベースサーバは、ロック更新要求をロック調停サーバに送信し、それによって、ロック調停サーバがロック更新要求を受信しないときに、ロック調停サーバは、セカンダリデータベースのうちの1つを新たなプライマリデータベースとして選択し、プライマリデータベースをセカンダリデータベースに切り替える。プライマリデータベースによって保持されるロックの有効期間が延長できないとき、プライマリデータベースサーバは、プライマリデータベースをセカンダリデータベースに切り替え、セカンダリデータベースは、新たなプライマリデータベースとして選択され、それによって、プライマリデータベースとセカンダリデータベースとの間の切り替え速度および正確性を改善し、データベースがユーザに正常にサービスすることを保証し、ユーザエクスペリエンスを改善する。
【００３２】
さらに、本出願の本実施におけるプライマリデータベースサーバは、以下の追加の技術的特徴を有する。
【００３３】
本出願の実施において、プライマリデータベースの優先度が、セカンダリデータベースの優先度よりも高い。
【００３４】
本出願の実施において、ロックの更新周期がT1であり、プライマリデータベースサーバが、ロックの状態を問い合わせるためのロック要求を周期T2で送信し、セカンダリデータベースが、ロックの状態を問い合わせるためのロック要求を周期T3で送信し、T2がT1より小さく、T3がT1以上である。
【００３５】
本出願の実施において、セカンダリデータベースが、ホットスタンバイデータベースおよびディザスタリカバリデータベースを含み、プライマリデータベースおよびホットスタンバイデータベースが、同一のデータセンタに位置し、プライマリデータベースおよびディザスタリカバリデータベースが、異なるデータセンタに位置する。
【００３６】
本出願の実施において、プライマリデータベースサーバは、ロック調停サーバが、元のプライマリデータベースによって送信されたロック要求を受信し、元のプライマリデータベースがプライマリデータベースに復元され、かつ現在のプライマリデータベースがセカンダリデータベースに復元されるように、ロックが失効した後に元のプライマリデータベースによって保持されるようにロックを制御するように、元のプライマリデータベースが復元された後、ロック調停サーバにロック要求を送信するように構成される、第3の送信モジュールをさらに含む。
【００３７】
前述の目的を達成するために、本出願の第4の態様の実施におけるセカンダリデータベースサーバは、ロック調停サーバにロック要求を送信するように構成される、第4の送信モジュールと、ロック調停サーバによって送信されたロック確認応答メッセージを受信するように構成される、第2の受信モジュールと、ロック確認応答メッセージに基づいて、セカンダリデータベースを新たなプライマリデータベースに切り替えるように構成される、第5の処理モジュールと、を含む。
【００３８】
本実施におけるセカンダリデータベースサーバは、ロック調停サーバにロック要求を送信し、ロック調停サーバによって送信されたロック確認応答メッセージを受信し、ロック確認応答メッセージに基づいて、セカンダリデータベースを新たなプライマリデータベースに切り替える。プライマリデータベースが、プライマリデータベースによって保持されるロックの有効期間を延長できないとき、セカンダリデータベースサーバは、セカンダリデータベースを新たなプライマリデータベースとして選択し、プライマリデータベースは、セカンダリデータベースに切り替えられる。それによって、プライマリデータベースとセカンダリデータベースとの間の切り替え速度および正確性を改善し、データベースがユーザに正常にサービスすることを保証し、ユーザエクスペリエンスを改善する。
【００３９】
本出願の本実施におけるセカンダリデータベースサーバは、以下の追加の技術的特徴を有する。
【００４０】
本出願の実施において、セカンダリデータベースサーバは、ロック調停サーバが、プライマリデータベースによって保持されるロックが失効したと判定した後、ロック調停サーバによって送信されたロック失効通知を受信するように構成される、第3の受信モジュールを含み、第4の送信モジュールは、ロック失効通知に基づいて、ロック調停サーバにロック要求を送信する。
【００４１】
本出願の実施において、プライマリデータベースの優先度が、セカンダリデータベースの優先度よりも高い。
【００４２】
本出願の実施において、セカンダリデータベースが、ホットスタンバイデータベースおよびディザスタリカバリデータベースを含み、プライマリデータベースおよびホットスタンバイデータベースが、同一のデータセンタに位置し、プライマリデータベースおよびディザスタリカバリデータベースが、異なるデータセンタに位置する。
【００４３】
本出願の実施において、セカンダリデータベースサーバは、ロック調停サーバが、元のプライマリデータベースによって送信されたロック要求を受信し、元のプライマリデータベースがプライマリデータベースに復元されるように、ロックが失効した後に元のプライマリデータベースによって保持されるようにロックを制御した後で、セカンダリデータベースに復元されるように現在のプライマリデータベースを制御するように構成される、第6の処理モジュールをさらに含む。
【００４４】
前述の目的を達成するために、本出願の第5の態様の実施におけるプライマリおよびセカンダリデータベースを管理するシステムは、本出願の第2の態様の実施におけるロック調停サーバ、本出願の第3の態様の実施におけるプライマリデータベースサーバ、および本出願の第4の態様の実施におけるセカンダリデータベースサーバを含む。
【００４５】
本出願のいくつかの追加の態様および利点が、以下の説明において提供され、以下の説明において明らかであるか、または本出願の実施を通して理解可能である。
【００４６】
本出願の前述および/または追加の態様および利点が、添付図面に関連する実施の以下の説明において明らかであり、かつ理解可能である。
【図面の簡単な説明】
【００４７】
【図１】本出願の実施による、プライマリおよびセカンダリデータベースを管理する方法を示すフローチャートである。
【図２ａ】本出願の特定の実施による、プライマリおよびセカンダリデータベース配備を示す図である。
【図２ｂ】本出願の特定の実施による、プライマリおよびセカンダリデータベース配備を示す図である。
【図２ｃ】本出願の特定の実施による、プライマリおよびセカンダリデータベース配備を示す図である。
【図３】本出願の別の実施による、プライマリおよびセカンダリデータベースを管理する方法を示すフローチャートである。
【図４】本出願のさらに別の実施による、プライマリおよびセカンダリデータベースを管理する方法を示すフローチャートである。
【図５】本出願の実施による、ロック調停サーバを示す概略構造図である。
【図６】本出願の特定の実施による、ロック調停サーバを示す概略構造図である。
【図７】本出願の別の実施による、ロック調停サーバを示す概略構造図である。
【図８】本出願のさらなる別の実施による、ロック調停サーバを示す概略構造図である。
【図９】本出願の実施による、プライマリデータベースサーバを示す概略構造図である。
【図１０】本出願の特定の実施による、プライマリデータベースサーバを示す概略構造図である。
【図１１】本出願の実施による、セカンダリデータベースサーバを示す概略構造図である。
【図１２】本出願の特定の実施による、セカンダリデータベースサーバを示す概略構造図である。
【図１３】本出願の別の実施による、セカンダリデータベースサーバを示す概略構造図である。
【図１４】本出願の実施による、プライマリおよびセカンダリデータベースを管理するシステムを示すフローチャートである。
【発明を実施するための形態】
【００４８】
本出願の実施が、以下で詳細に説明され、実施の例が添付図面に示される。同一または類似の参照番号は、同一または類似の機能を有する同一または類似の要素を表す。添付図面に関連して後述される実施は、例であり、本出願を説明するように意図され、本出願に対する限定として解釈されるべきではない。
【００４９】
添付図面に関連して、以下では、本出願の実施によるプライマリおよびセカンダリデータベースを管理する方法、システム、および装置を説明する。
【００５０】
図1は、本出願の実施による、プライマリおよびセカンダリデータベースを管理する方法を示すフローチャートである。図1に示すように、プライマリおよびセカンダリデータベースを管理する方法は、以下のステップを含む。
【００５１】
S110  プライマリデータベースによって保持されるロックが失効するかどうかを判定し、プライマリデータベースおよびセカンダリデータベースはロックを共有する。
【００５２】
S120  プライマリデータベースによって保持されるロックが失効したと判定する場合に、プライマリデータベースのロック更新要求が受信されるかどうかを判定する。
【００５３】
モニタリングシステムが、プライマリデータベースとセカンダリデータベースとの間の切り替えをモニタリングし、制御するときに、例えば、欠陥がないプライマリデータベースが切り替えられる、またはプライマリデータベースに欠陥があるが切り替えられないなど、プライマリデータベースとセカンダリデータベースとの間の誤った切り替えが発生する場合があると理解され得る。問題を軽減するために、本出願の本実施におけるプライマリおよびセカンダリデータベースを管理する方法では、外部調停機構が導入され、プライマリデータベースに欠陥があるかどうかを正確に判定するために使用され、それによって、プライマリデータベースとセカンダリデータベースとの間の切り替えを正確に制御する。
【００５４】
異なる特定の適用シナリオに基づいて、複数の外部調停機構が存在し得る。本出願の本実施において、調停機構がロックサービスであるという例が、詳細な説明に使用される。
【００５５】
具体的には、プライマリデータベースおよびセカンダリデータベースが、ロックを共有する。プライマリデータベースおよびセカンダリデータベースの両方が、ロックの所有権を争い、ロックを取得するデータベースが、プライマリデータベースである。さらに、ロックは、相互排他の特徴を有するため、同時に1つのデータベースだけが、プライマリデータベースであり得る。
【００５６】
プライマリデータベースは、有効期間が満了する前に、ロックの有効期間(通常は、数十秒)を延長するようにロックを連続的に更新する必要がある。プライマリデータベースに欠陥があるか、または有効期間内にアップグレードもしくはメンテナンス動作を実行している場合、プライマリデータベースは、ロックの有効期間を延長するためにロックの更新を完了することができない。したがって、別のセカンダリデータベースがロックを獲得し、プライマリデータベースにアップグレードされ、プライマリデータベースは、セカンダリデータベースにダウングレードされる。
【００５７】
具体的には、実際の適用において、プライマリデータベースが変更されないようにしておくために、すなわち、プライマリデータベースに欠陥がないとき、またはアップグレードもしくはメンテナンス動作を実行するときに、プライマリデータベースがセカンダリデータベースに切り替えられるのを防止するために、プライマリデータベースの優先度は、セカンダリデータベースの優先度よりも高く、それによって、プライマリデータベースに欠陥がないとき、またはアップグレードもしくはメンテナンス動作を実行するときに、ロックを保持するデータベースがプライマリデータベースであることを保証する。
【００５８】
プライマリおよびセカンダリデータベースを配備する複数の方法、例えば、1つのプライマリデータベースおよび1つのセカンダリデータベースを配備する方法、または1つのプライマリデータベースおよび複数のセカンダリデータベースを配備する方法が存在することは注目に値する。
【００５９】
説明を容易にするために、本出願の本実施は、プライマリおよびセカンダリデータベースを配備する方法が、2地点3データセンタ方式(three-data-centers-in-two-locations method)である例を用いて説明される。すなわち、セカンダリデータベースが、ホットスタンバイデータベースおよびディザスタリカバリデータベースを含み、プライマリデータベースおよびホットスタンバイデータベースが、同一のデータセンタに位置し、プライマリデータベースおよびディザスタリカバリデータベースが、異なるデータセンタに位置する。
【００６０】
さらに、ロックを保持するプライマリデータベースに欠陥があるかどうかを判定するために、プライマリデータベースが有効期間内にロックの有効期間を延長するかどうかが判定される。
【００６１】
具体的には、プライマリデータベースによって保持されるロックが失効するかどうかが判定される。プライマリデータベースによって保持されるロックが失効したと判定される場合、プライマリデータベースのロック更新要求が受信されるかどうかが判定される。
【００６２】
S130  プライマリデータベースのロック更新要求が受信されない場合に、セカンダリデータベースのうちの1つを新たなプライマリデータベースとして選択し、プライマリデータベースをセカンダリデータベースに切り替えられるように制御する。
【００６３】
具体的には、プライマリデータベースのロック更新要求が受信されない場合、それは、プライマリデータベースがネットワーク障害または電力障害を有し、ロックの更新を完了することができないことを示す。したがって、ユーザに正常にサービスするために、セカンダリデータベースのうちの1つが、新たなプライマリデータベースとして選択され、プライマリデータベースが、セカンダリデータベースに切り替えられるように制御される。
【００６４】
異なる特定の適用シナリオに基づく異なる方法を用いることによって、セカンダリデータベースのうちの1つがプライマリデータベースとして選択され得ることは、注目に値する。例えば、プライマリデータベースのロックが失効するとき、ロックの有効期間を延長するために、プライマリデータベースがロック更新要求を送信するかどうかを、セカンダリデータベースが特定の周期で能動的に問い合わせしてもよい。送信しない場合、セカンダリデータベースがロック要求を送信して、ロックを素早く取得し、プライマリデータベースに切り替える。
【００６５】
本出願の本実施におけるプライマリおよびセカンダリデータベースを管理する方法をより明確に説明するために、図2a〜図2bに関連して、データベース配備方法が2地点3データセンタ方式である例が、説明のために以下で用いられる。すなわち、図2aに示すように、2つのデータベース(プライマリデータベースおよびホットスタンバイデータベース)が、ローカルプライマリ機器ルームおよびローカルホットスタンバイ機器ルームに配備され、1つの独立したデータベース(ディザスタリカバリデータベース)が、リモートディザスタリカバリ機器ルームに配備される。
【００６６】
この例では、外部調停機構サービスGOSは、領域にまたがって配備されてもよく、機器ルームおよびレイアウト領域の完全故障、またはネットワーク障害に耐性があってもよく、中断されないロックサービスを常に提供することができる。
【００６７】
図2bは、本出願の実施による、プライマリデータベースとセカンダリデータベースとの間の切り替えを示す概略図である。
【００６８】
図2bに示すように、プライマリ機器ルーム全体に欠陥がある場合、例えば、プライマリ機器ルームが損傷しているか、またはネットワークに欠陥がある場合、プライマリデータベースは、ロック更新要求を送信することができず、したがって、プライマリデータベースによって保持されるロックの有効期間を延長することができない。その結果、プライマリデータベースによって保持されるロックは、無効である。このプロセスは、通常数十秒間続く。この期間において、プライマリデータベースは、ユーザに正常にサービスすることができない。
【００６９】
ロックの有効期間が満了した後、ホットスタンバイ機器ルームは、通常新たなロックを得て、したがって、ホットスタンバイデータベースが新たなプライマリデータベースになる。元のプライマリデータベースは、自動的にセカンダリデータベースにダウングレードされ、ホットスタンバイデータベースが、新たなプライマリデータベースとしてユーザにサービスする。ディザスタリカバリ機器ルームは、新たなプライマリデータベースから最新データを取得し、ローカルにデータを同期させる。
【００７０】
結論として、本出願の本実施におけるプライマリおよびセカンダリデータベースを管理する方法によれば、プライマリデータベースによって保持されるロックが失効するかどうかが判定される。プライマリデータベースによって保持されるロックが失効したと判定される場合、プライマリデータベースのロック更新要求が受信されるかどうかが判定される。ロック更新要求が受信されない場合、セカンダリデータベースのうちの1つが新たなプライマリデータベースとして選択され、プライマリデータベースは、セカンダリデータベースに切り替えられるように制御される。方法によれば、プライマリデータベースによって保持されるロックが失効する前に、プライマリデータベースがロック更新要求を送信しない場合、プライマリデータベースによって保持されるロックが無効であり、かつプライマリデータベースがユーザに正常にサービスできないと判定される。したがって、セカンダリデータベースが、新たなプライマリデータベースとして選択され、それによって、プライマリデータベースとセカンダリデータベースとの間の切り替え速度および正確性を改善する。
【００７１】
前述の実施に基づいて、プライマリおよびセカンダリデータベースを管理する方法において、プライマリデータベースとセカンダリデータベースとの間で切り替える方法は、能動的切り替えおよび受動的切り替えの2つの種類に分類され得る。詳細な説明は、以下の通りである。
【００７２】
例えば、プライマリデータベースが適時にロックを更新することを可能にするため、およびプライマリデータベースに欠陥があるときに他のセカンダリデータベースがロックを素早く取得することを可能にするために、プライマリデータベースは、ロックの更新周期以内の比較的短い周期で、ロックの状態を問い合わせるための要求を送信して、ロックの失効が近いときに適時にロックを更新し、プライマリデータベースが変更されないようにしておくことができる。
【００７３】
さらに、セカンダリデータベースは、ロックの状態を問い合わせるためのロック要求を比較的長い周期で能動的に送信する。したがって、プライマリデータベースのロックが無効であるときに、セカンダリデータベースは、ロックを素早く取得し、新たなプライマリデータベースに能動的に切り替えることができ、したがって、ユーザに提供されるサービスは、影響を受けない。
【００７４】
例えば、ロックの更新周期はT1であり、プライマリデータベースは、ロックの状態を問い合わせるためのロック要求を周期T2で送信し、セカンダリデータベースは、ロックの状態を問い合わせるためのロック要求を周期T3で送信し、T2はT1より小さく、T3はT1以上である。
【００７５】
別の例について、セカンダリデータベースが、特定の周期でロックの状態を問い合わせるためのロック要求を常に能動的に送信するとは限らない場合、プライマリデータベースによって保持されるロックが無効であるときに、ロック失効通知が、他のセカンダリデータベースのそれぞれに能動的に送信される。したがって、セカンダリデータベースは、ロック失効通知に基づいてロック要求を送信し、ロックを取得し、新たなプライマリデータベースになる。
【００７６】
具体的には、図3は、本出願の別の実施による、プライマリおよびセカンダリデータベースを管理する方法を示すフローチャートである。図3に示すように、方法は、以下のステップを含む。
【００７７】
S310  プライマリデータベースによって保持されるロックが失効するどうかを判定し、プライマリデータベースおよびセカンダリデータベースはロックを共有する。
【００７８】
S320  プライマリデータベースによって保持されるロックが失効したと判定する場合、ロック失効通知をセカンダリデータベースに送信する。
【００７９】
S330  ロック失効通知に基づいて、セカンダリデータベースによって送信されたロック要求を受信し、ロック要求の受信時間を記録する。
【００８０】
S340  プライマリデータベースのロック更新要求が受信されるかどうかを判定する。
【００８１】
S350  プライマリデータベースのロック更新要求が受信されない場合、プライマリデータベースとして、最も早い受信時間を有するセカンダリデータベースを選択する。
【００８２】
データは、プライマリデータベースとセカンダリデータベースとの間でリアルタイムに同期されると理解され得る。同期速度は、データベースのバックアップ速度に依存する。概して、都市内機器ルームの遅延は、数ミリ秒であり、リモート機器ルームの遅延は、数百ミリ秒である。
【００８３】
さらに、プライマリデータベースが、能動的に切り替えを開始する場合、例えば、バージョンのアップグレードまたはオフラインメンテナンスを実行する場合に、データ書き込みは、プライマリデータベースがプライマリデータベースの識別を使用しないようにする前に停止され得る。ホットスタンバイ機器ルームは、ロックを取得し、ホットスタンバイデータベースは、同期し、全てのデータの更新を完了し得る。したがって、概して、ホットスタンバイデータベース内のデータは、比較的完全であり、よって、ホットスタンバイデータベースが、次のプライマリデータベースとして使用されることが好ましい。
【００８４】
具体的には、プライマリデータベースにより近いセカンダリデータベースは、ロック要求の受信時間に基づいて判定される。すなわち、プライマリデータベースと異なるセカンダリデータベースとの間の距離は、異なり得る。例えば、ホットスタンバイデータベースは、通常、プライマリデータベースにより近く、ディザスタリカバリデータベースは、通常、プライマリデータベースからより遠い。したがって、2つのデータベースのロック要求の受信時間は異なり、ホットスタンバイデータベースの要求の受信時間の方が早い。
【００８５】
さらに、プライマリデータベースのロック更新要求が受信されない場合、それは、現在のデータベースに欠陥があるか、またはアップグレードもしくはメンテナンス動作を実行していることを示す。したがって、可能な限り早くユーザに正常にサービスするために、最も早い受信時間を有するセカンダリデータベースが、プライマリデータベースとして選択される。
【００８６】
さらに、地震などの災害に起因して、同一データセンタ内に位置するプライマリデータベースおよびホットスタンバイデータベースに欠陥があるときに、本出願の本実施におけるプライマリおよびセカンダリデータベースを管理する方法が、やはり実施され得ると、理解すべきである。
【００８７】
図2cに示すように、プライマリデータベースおよびホットスタンバイデータベースの機器ルーム両方に欠陥があるとき、プライマリデータベースのロックが無効になり、ホットスタンバイデータベースは、ロックを取得することができない。したがって、ディザスタリカバリデータベースが、ロックを取得し、新たなプライマリデータベースになり、ユーザにサービスし続ける。全プロセスが、手動での分割を必要としない。
【００８８】
結論として、本出願の本実施におけるプライマリおよびセカンダリデータベースを管理する方法によれば、プライマリデータベースのロックが失効し、無効であるときに、セカンダリデータベースは、素早くロックを取得し、新たなプライマリデータベースになる。それによって、正常なサービスが依然として比較的短時間でユーザに提供されることを保証し、ユーザエクスペリエンスを改善する。
【００８９】
実際の適用では、メンテナンスおよびアップグレードなどの関連する動作が、欠陥のある元のプライマリデータベース上で実行された後、元のプライマリデータベースが、ユーザにサービスし続けることができる。したがって、本出願の本実施におけるプライマリおよびセカンダリデータベースを管理する方法は、元のプライマリデータベースが復元された後で元のプライマリデータベースからロック要求を受信して、元のプライマリデータベースをプライマリデータベースに切り替えるステップをさらに含む。
【００９０】
具体的には、この例では、セカンダリデータベースのうちの1つが、新たなプライマリデータベースとして選択された後、現在のプライマリデータベースのロックの有効性および元のプライマリデータベースのロック要求が、常に検出される。現在のプライマリデータベースのロックが無効であるとき、他のセカンダリデータベースのうちの1つが、新たなプライマリデータベースとして再び選択される。代替的には、元のプライマリデータベースのロック要求が受信された後、元のプライマリデータベースの優先度がより高いため、元のプライマリデータベースがプライマリデータベースに切り替えられ、現在のプライマリデータベースは、セカンダリデータベースにダウングレードされる。
【００９１】
図4は、本出願のさらに別の実施による、プライマリおよびセカンダリデータベースを管理する方法を示すフローチャートである。図4に示すように、プライマリおよびセカンダリデータベースを管理する方法は、以下のステップを含む。
【００９２】
S410  現在のプライマリデータベースによって保持されるロックが失効するかどうかを判定し続ける。
【００９３】
S420  現在のプライマリデータベースによって保持されるロックが失効した場合に、元のプライマリデータベース、現在のプライマリデータベース、および他のセカンダリデータベースのロック要求が受信されるかどうかを判定する。
【００９４】
S430  元のプライマリデータベースのロック要求が受信される場合、元のプライマリデータベースをプライマリデータベースに復元し、現在のプライマリデータベースをセカンダリデータベースに復元する。
【００９５】
具体的には、元のプライマリデータベースが復元された後、元のプライマリデータベースは、ロック要求を送信する。元のプライマリデータベースの優先度がより高いため、ロック要求が受信された後、元のプライマリデータベースがプライマリデータベースに復元され、現在のプライマリデータベースが、セカンダリデータベースに復元される。
【００９６】
S440  元のプライマリデータベースのロック要求が受信されず、かつ現在のプライマリデータベースおよび他のセカンダリデータベースのロック要求が受信される場合、現在のプライマリデータベースをプライマリデータベースとして維持する。
【００９７】
具体的には、元のプライマリデータベースのロック要求が受信されず、かつ現在のプライマリデータベースがロックを正常に更新するとき、現在のプライマリデータベースが、プライマリデータベースとして維持される。
【００９８】
S450  元のプライマリデータベースおよび現在のプライマリデータベースのロック要求が受信されず、かつ他のセカンダリデータベースのロック要求が受信される場合、他のセカンダリデータベースのうちの1つをプライマリデータベースとして選択し、現在のプライマリデータベースをセカンダリデータベースに復元する。
【００９９】
具体的には、元のプライマリデータベースおよび現在のプライマリデータベースのロック要求が受信されない場合、それは、元のプライマリデータベースが復元されず、現在のプライマリデータベースもまた欠陥があるか、またはアップグレード動作を実行する必要があることを示す。したがって、ユーザに正常にサービスするために、ロック要求を送信する他のセカンダリデータベースのうちの1つが、プライマリデータベースとして選択される必要があり、現在のプライマリデータベースは、セカンダリデータベースに復元される。
【０１００】
結論として、本出願の本実施におけるプライマリおよびセカンダリデータベースを管理する方法によれば、セカンダリデータベースのうちの1つを新たなプライマリデータベースとして選択した後、ロック調停サーバは、現在のプライマリデータベースが元のプライマリデータベースのロック要求を受信するかどうか、および現在のプライマリデータベースがロックを更新するかどうかを判定し続ける。元のプライマリデータベースのロック要求が受信されるとき、サーバは、元のプライマリデータベースをプライマリデータベースに復元し、現在のプライマリデータベースをセカンダリデータベースに復元する。元のプライマリデータベースのロック要求が受信されない場合、サーバは、現在のプライマリデータベースが有効期間内にロックを更新するかどうかを判定する。更新しない場合、サーバは、他のセカンダリデータベースのうちの1つをプライマリデータベースとして選択し、現在のプライマリデータベースをセカンダリデータベースに復元する。方法によれば、ユーザにより良くサービスするために、元のプライマリデータベースが復元された後で元のプライマリデータベースがプライマリデータベースに復元されることが保証され、それによって、本出願におけるプライマリおよびセカンダリデータベースを管理する方法の実用性を改善する。
【０１０１】
前述の実施を実装するために、本出願は、ロック調停サーバをさらに提供する。図5は、本出願の実施による、ロック調停サーバを示す概略構造図である。
【０１０２】
図5に示すように、ロック調停サーバは、プライマリデータベースによって保持されるロックが失効するかどうかを判定するように構成される第1の判定モジュール510であって、プライマリデータベースおよびセカンダリデータベースがロックを共有する、第1の判定モジュール510と、プライマリデータベースによって保持されるロックが失効したときに、プライマリデータベースのロック更新要求が受信されるかどうかを判定するように構成される、第2の判定モジュール520と、プライマリデータベースのロック更新要求が受信されないときに、セカンダリデータベースのうちの1つを新たなプライマリデータベースとして選択し、プライマリデータベースをセカンダリデータベースに切り替えられるように制御するように構成される、第1の処理モジュール530と、を含む。
【０１０３】
具体的には、実際の適用において、プライマリデータベースが変更されないようにしておくために、すなわち、プライマリデータベースに欠陥がないとき、またはアップグレードもしくはメンテナンス動作を実行するときに、プライマリデータベースがセカンダリデータベースに切り替えられるのを防止するために、プライマリデータベースの優先度は、セカンダリデータベースの優先度よりも高く、それによって、プライマリデータベースに欠陥がないとき、またはアップグレードもしくはメンテナンス動作を実行するときに、ロックを保持するデータベースがプライマリデータベースであることを保証する。
【０１０４】
プライマリおよびセカンダリデータベースを配備する複数の方法、例えば、1つのプライマリデータベースおよび1つのセカンダリデータベースを配備する方法、または1つのプライマリデータベースおよび複数のセカンダリデータベースを配備する方法が存在することは注目に値する。
【０１０５】
説明を容易にするために、本出願の本実施は、プライマリおよびセカンダリデータベースを配備する方法が、2地点3データセンタ方式である例を用いて説明される。すなわち、セカンダリデータベースが、ホットスタンバイデータベースおよびディザスタリカバリデータベースを含み、プライマリデータベースおよびホットスタンバイデータベースが、同一のデータセンタに位置し、プライマリデータベースおよびディザスタリカバリデータベースが、異なるデータセンタに位置する。
【０１０６】
さらに、ロックを保持するプライマリデータベースに欠陥があるかどうかを判定するために、プライマリデータベースが、有効期間内にロックの有効期間を延長するかどうかが判定される。
【０１０７】
具体的には、第1の判定モジュール510は、プライマリデータベースによって保持されるロックが失効するかどうかを判定する。プライマリデータベースによって保持されるロックが失効したと判定される場合、第2の判定モジュール520は、プライマリデータベースのロック更新要求が受信されるかどうかを判定する。
【０１０８】
さらに、プライマリデータベースのロック更新要求が受信されない場合、それは、プライマリデータベースがネットワーク障害または電力障害を有し、ロックの更新を完了することができないことを示す。したがって、ユーザに正常にサービスするために、第1の処理モジュール530は、セカンダリデータベースのうちの1つを新たなプライマリデータベースとして選択し、プライマリデータベースをセカンダリデータベースに切り替えられるように制御する。
【０１０９】
第1の処理モジュール530が、異なる特定の適用シナリオに基づく異なる方法を用いることによって、セカンダリデータベースのうちの1つをプライマリデータベースとして選択し得ることは、注目に値する。例えば、プライマリデータベースのロックが失効するとき、ロックの有効期間を延長するために、プライマリデータベースがロック更新要求を送信するかどうかを、セカンダリデータベースが特定の周期で能動的に問い合わせしてもよい。送信しない場合、セカンダリデータベースがロック要求を送信して、ロックを素早く取得し、プライマリデータベースに切り替える。
【０１１０】
結論として、本出願の本実施におけるロック調停サーバは、プライマリデータベースによって保持されるロックが失効するかどうかを判定する。プライマリデータベースによって保持されるロックが失効したと判定する場合、サーバは、プライマリデータベースのロック更新要求が受信されるかどうかを判定する。ロック更新要求が受信されない場合、サーバは、セカンダリデータベースのうちの1つを新たなプライマリデータベースとして選択し、プライマリデータベースをセカンダリデータベースに切り替えられるように制御する。プライマリデータベースによって保持されるロックが失効する前に、プライマリデータベースがロック更新要求を送信しない場合、ロック調停サーバは、プライマリデータベースによって保持されるロックが無効であり、かつプライマリデータベースがユーザに正常にサービスできないと判定し、したがって、セカンダリデータベースが、新たなプライマリデータベースとして選択され、それによって、プライマリデータベースとセカンダリデータベースとの間の切り替え速度および正確性を改善する。
【０１１１】
前述の実施に基づいて、プライマリおよびセカンダリデータベースを管理する方法において、プライマリデータベースとセカンダリデータベースとの間で切り替える方法は、能動的切り替えおよび受動的切り替えの2つの種類に分類され得る。詳細な説明は、以下の通りである。
【０１１２】
例えば、プライマリデータベースが適時にロックを更新することを可能にするため、およびプライマリデータベースに欠陥があるときに他のセカンダリデータベースがロックを素早く取得することを可能にするために、プライマリデータベースは、ロックの更新周期以内の比較的短い周期で、ロックの状態を問い合わせるための要求を送信して、ロックの失効が近いときに適時にロックを更新し、プライマリデータベースが変更されないようにしておくことができる。
【０１１３】
さらに、セカンダリデータベースは、ロックの状態を問い合わせるためのロック要求を比較的長い周期で能動的に送信する。したがって、プライマリデータベースのロックが無効であるときに、セカンダリデータベースは、ロックを素早く取得し、新たなプライマリデータベースに能動的に切り替えることができ、したがって、ユーザに提供されるサービスは、影響を受けない。
【０１１４】
例えば、ロックの更新周期はT1であり、プライマリデータベースは、ロックの状態を問い合わせるためのロック要求を周期T2で送信し、セカンダリデータベースは、ロックの状態を問い合わせるためのロック要求を周期T3で送信し、T2はT1より小さく、T3はT1以上である。
【０１１５】
別の例について、セカンダリデータベースが、特定の周期でロックの状態を問い合わせるためのロック要求を常に能動的に送信するとは限らない場合、プライマリデータベースによって保持されるロックが無効であるときに、ロック失効通知が、他のセカンダリデータベースのそれぞれに能動的に送信される。したがって、セカンダリデータベースは、ロック失効通知に基づいてロック要求を送信し、ロックを取得し、新たなプライマリデータベースになる。
【０１１６】
具体的には、図6は、本出願の特定の実施による、ロック調停サーバを示す概略構造図である。図6に示すように、図5を基にして、ロック調停サーバは、第1の送信モジュール540と、記録モジュール550とをさらに含む。
【０１１７】
具体的には、プライマリデータベースによって保持されるロックが失効したと第1の判定モジュール510が判定した後で、第1の送信モジュールが、ロック失効通知をセカンダリデータベースに送信する。次いで、記録モジュール550は、ロック失効通知に基づいて、セカンダリデータベースによって送信されたロック要求を受信し、ロック要求の受信時間を記録する。
【０１１８】
さらに、プライマリデータベースのロック更新要求が受信されない場合、それは、現在のデータベースに欠陥があるか、またはアップグレードもしくはメンテナンス動作を実行していることを示す。したがって、可能な限り早くユーザに正常にサービスするために、第1の処理モジュール530は、プライマリデータベースとして、最も早い受信時間を有するセカンダリデータベースを選択する。
【０１１９】
結論として、本出願の本実施におけるロック調停サーバによれば、プライマリデータベースのロックが失効し、無効であるときに、セカンダリデータベースは、素早くロックを取得し、新たなプライマリデータベースになる。それによって、正常なサービスが依然として比較的短時間でユーザに提供されることを保証し、ユーザエクスペリエンスを改善する。
【０１２０】
実際の適用では、メンテナンスおよびアップグレードなどの関連する動作が、欠陥のある元のプライマリデータベース上で実行された後、元のプライマリデータベースが、ユーザにサービスし続けることができる。したがって、本出願の本実施におけるロック調停サーバは、元のプライマリデータベースが復元された後で元のプライマリデータベースからロック要求を受信して、元のプライマリデータベースをプライマリデータベースに切り替えるようにさらに構成される。
【０１２１】
図7は、本出願の別の実施による、ロック調停サーバを示す概略構造図である。図7に示すように、図5を基にして、ロック調停サーバは、第1の受信モジュール560をさらに含む。具体的には、この例では、第1の処理モジュール530がセカンダリデータベースのうちの1つを新たなプライマリデータベースとして選択した後、第1の受信モジュール560が、元のプライマリデータベースのロック要求を常に受信する。第1の受信モジュール560が、元のプライマリデータベースのロック要求を受信した後、元のプライマリデータベースの優先度がより高いため、第1の処理モジュール530は、元のプライマリデータベースをプライマリデータベースに切り替え、現在のプライマリデータベースをセカンダリデータベースにダウングレードする。
【０１２２】
実施において、図8は、本出願のさらなる別の実施による、ロック調停サーバを示す概略構造図である。図8に示すように、図5を基にして、ロック調停サーバは、第2の処理モジュール570と、第3の処理モジュール580と、第4の処理モジュール590とをさらに含む。
【０１２３】
具体的には、セカンダリデータベースのうちの1つが新たなプライマリデータベースとして選択された後、第1の判定モジュール510は、現在のプライマリデータベースによって保持されるロックが失効するかどうかを判定し続ける。現在のプライマリデータベースによって保持されるロックが失効したとき、第2の判定モジュール520は、元のプライマリデータベース、現在のプライマリデータベース、および他のセカンダリデータベースのロック要求が受信されるかどうかを判定する。
【０１２４】
元のプライマリデータベースのロック要求が受信されるとき、第2の処理モジュール570は、元のプライマリデータベースをプライマリデータベースに復元し、現在のプライマリデータベースをセカンダリデータベースに復元する。
【０１２５】
具体的には、元のプライマリデータベースが復元された後、元のプライマリデータベースは、ロック要求を送信する。元のプライマリデータベースの優先度がより高いため、ロック要求が受信された後、第2の処理モジュール570は、元のプライマリデータベースをプライマリデータベースに復元し、現在のプライマリデータベースをセカンダリデータベースに復元する。
【０１２６】
元のプライマリデータベースのロック要求が受信されず、かつ現在のプライマリデータベースおよび他のセカンダリデータベースのロック要求が受信される場合、第3の処理モジュール580は、現在のプライマリデータベースをプライマリデータベースとして維持する。
【０１２７】
具体的には、元のプライマリデータベースのロック要求が受信されず、かつ現在のプライマリデータベースがロックを正常に更新するとき、第3の処理モジュール580は、現在のプライマリデータベースをプライマリデータベースとして維持する。
【０１２８】
元のプライマリデータベースおよび現在のプライマリデータベースのロック要求が受信されず、かつ他のセカンダリデータベースのロック要求が受信される場合、第4の処理モジュール590は、他のセカンダリデータベースのうちの1つをプライマリデータベースとして選択し、現在のプライマリデータベースをセカンダリデータベースに復元する。
【０１２９】
具体的には、元のプライマリデータベースおよび現在のプライマリデータベースのロック要求が受信されない場合、それは、元のプライマリデータベースが復元されず、現在のプライマリデータベースもまた欠陥があるか、またはアップグレード動作を実行する必要があることを示す。したがって、ユーザに正常にサービスするために、第4の処理モジュール590は、プライマリデータベースとして、ロック要求を送信する他のセカンダリデータベースのうちの1つを選択する必要があり、現在のプライマリデータベースをセカンダリデータベースに復元する。
【０１３０】
本出願におけるロック調停サーバの実施において開示されない詳細について、図1〜図4に関連して説明されたプライマリおよびセカンダリデータベースを管理する方法の前述の実施に対して参照が行われ得ることは、注目に値する。簡略化のため、詳細はここでは省略する。
【０１３１】
結論として、セカンダリデータベースのうちの1つを新たなプライマリデータベースとして選択した後、本出願の本実施におけるロック調停サーバは、現在のプライマリデータベースが元のプライマリデータベースのロック要求を受信するかどうか、および現在のプライマリデータベースがロックを更新するかどうかを判定し続ける。元のプライマリデータベースのロック要求が受信されるとき、サーバは、元のプライマリデータベースをプライマリデータベースに復元し、現在のプライマリデータベースをセカンダリデータベースに復元する。元のプライマリデータベースのロック要求が受信されない場合、サーバは、現在のプライマリデータベースが有効期間内にロックを更新するかどうかを判定する。更新しない場合、サーバは、他のセカンダリデータベースのうちの1つをプライマリデータベースとして選択し、現在のプライマリデータベースをセカンダリデータベースに復元する。ロック調停サーバによれば、ユーザにより良くサービスするために、元のプライマリデータベースが復元された後で元のプライマリデータベースがプライマリデータベースに復元されることが保証され、それによって、本出願におけるプライマリおよびセカンダリデータベースを管理する方法の実用性を改善する。
【０１３２】
前述の実施を実装するために、本出願は、プライマリデータベースサーバをさらに提供する。
【０１３３】
図9は、本出願の実施による、プライマリデータベースサーバを示す概略構造図である。図9に示すように、プライマリデータベースサーバは、ロック調停サーバがロック更新要求を受信しないときに、ロック調停サーバがセカンダリデータベースのうちの1つを新たなプライマリデータベースとして選択するように、プライマリデータベースによって保持されるロックが失効するときに、ロック更新要求をロック調停サーバに送信するように構成される、第2の送信モジュール910と、プライマリデータベースをセカンダリデータベースに切り替えられるように制御するように構成される、切替モジュール920と、を含む。
【０１３４】
具体的には、実際の適用において、プライマリデータベースが変更されないようにしておくために、すなわち、プライマリデータベースに欠陥がないとき、またはアップグレードもしくはメンテナンス動作を実行するときに、プライマリデータベースがセカンダリデータベースに切り替えられるのを防止するために、プライマリデータベースの優先度は、セカンダリデータベースの優先度よりも高く、それによって、プライマリデータベースに欠陥がないとき、またはアップグレードもしくはメンテナンス動作を実行するときに、ロックを保持するデータベースがプライマリデータベースであることを保証する。
【０１３５】
プライマリおよびセカンダリデータベースを配備する複数の方法、例えば、1つのプライマリデータベースおよび1つのセカンダリデータベースを配備する方法、または1つのプライマリデータベースおよび複数のセカンダリデータベースを配備する方法が存在することは注目に値する。
【０１３６】
説明を容易にするために、本出願の本実施は、プライマリおよびセカンダリデータベースを配備する方法が、2地点3データセンタ方式である例を用いて説明される。すなわち、セカンダリデータベースが、ホットスタンバイデータベースおよびディザスタリカバリデータベースを含み、プライマリデータベースおよびホットスタンバイデータベースが、同一のデータセンタに位置し、プライマリデータベースおよびディザスタリカバリデータベースが、異なるデータセンタに位置する。
【０１３７】
具体的には、プライマリデータベースによって保持されるロックが失効するときに、第2の送信モジュール910は、ロック更新要求をロック調停サーバに送信する。ロック調停サーバがロック更新要求を受信しない場合、それは、プライマリデータベースが、アップグレード動作を実行しているかまたは欠陥があり、したがって、ユーザに正常にサービスできないことを示す。このように、ロック調停サーバは、可能な限り早くユーザに正常にサービスするために、セカンダリデータベースのうちの1つを新たなプライマリデータベースとして選択する。さらに、切替モジュール920は、プライマリデータベースをセカンダリデータベースに切り替えられるように制御する。
【０１３８】
プライマリデータベースが適時にロックを更新することを可能にするため、およびプライマリデータベースに欠陥があるときに他のセカンダリデータベースがロックを素早く取得することを可能にするために、プライマリデータベースは、ロックの更新周期以内の比較的短い周期で、ロックの状態を問い合わせるための要求を送信して、ロックの失効が近いときに適時にロックを更新し、プライマリデータベースが変更されないようにしておくことができると、理解されるべきである。
【０１３９】
さらに、セカンダリデータベースは、ロックの状態を問い合わせるためのロック要求を比較的長い周期で能動的に送信する。したがって、プライマリデータベースのロックが無効であるときに、セカンダリデータベースは、ロックを素早く取得し、新たなプライマリデータベースに能動的に切り替えることができ、したがって、ユーザに提供されるサービスは、影響を受けない。
【０１４０】
例えば、ロックの更新周期はT1であり、プライマリデータベースは、ロックの状態を問い合わせるためのロック要求を周期T2で送信し、セカンダリデータベースは、ロックの状態を問い合わせるためのロック要求を周期T3で送信し、T2はT1より小さく、T3はT1以上である。
【０１４１】
結論として、プライマリデータベースによって保持されるロックが失効するとき、本出願の本実施におけるプライマリデータベースサーバは、ロック更新要求をロック調停サーバに送信する。したがって、ロック調停サーバがロック更新要求を受信しないときに、ロック調停サーバは、セカンダリデータベースのうちの1つを新たなプライマリデータベースとして選択し、プライマリデータベースをセカンダリデータベースに切り替える。プライマリデータベースによって保持されるロックの有効期間が延長できないとき、プライマリデータベースサーバは、プライマリデータベースをセカンダリデータベースに切り替え、セカンダリデータベースは、新たなプライマリデータベースとして選択され、それによって、プライマリデータベースとセカンダリデータベースとの間の切り替え速度および正確性を改善し、データベースがユーザに正常にサービスすることを保証し、ユーザエクスペリエンスを改善する。
【０１４２】
実際の適用では、メンテナンスおよびアップグレードなどの関連する動作が、欠陥のある元のプライマリデータベース上で実行された後、元のプライマリデータベースが、ユーザにサービスし続けることができる。したがって、本出願の本実施におけるプライマリデータベースサーバは、元のプライマリデータベースが復元された後で元のプライマリデータベースからロック要求を受信して、元のプライマリデータベースをプライマリデータベースに切り替えるようにさらに構成される。
【０１４３】
図10は、本出願の特定の実施による、プライマリデータベースサーバを示す概略構造図である。図10に示すように、図9を基にして、プライマリデータベースサーバは、第3の送信モジュール930をさらに含む。
【０１４４】
具体的には、元のプライマリデータベースが復元された後、第3の送信モジュール930は、ロック要求を送信する。元のプライマリデータベースの優先度がより高いため、ロック要求が送信された後、ロック調停サーバは、元のプライマリデータベースによって送信されたロック要求を受信し、元のプライマリデータベースがプライマリデータベースに復元され、かつ現在のプライマリデータベースがセカンダリデータベースに復元されるように、ロックが失効した後に元のプライマリデータベースによって保持されるようにロックを制御する。
【０１４５】
本出願におけるプライマリデータベースサーバの実施において開示されない詳細について、図1〜図4に関連して説明されたプライマリおよびセカンダリデータベースを管理する方法に対して参照が行われ得ることが、強調されるべきである。簡略化のため、詳細はここでは省略する。
【０１４６】
結論として、本出願の本実施におけるプライマリデータベースサーバによれば、ユーザにより良くサービスするために、元のプライマリデータベースが復元された後、元のプライマリデータベースは、プライマリデータベースに復元されることが保証され、それによって、ユーザエクスペリエンスを改善する。
【０１４７】
前述の実施を実装するために、本出願は、セカンダリデータベースサーバをさらに提供する。図11は、本出願の実施による、セカンダリデータベースサーバを示す概略構造図である。図11に示すように、セカンダリデータベースサーバは、ロック調停サーバにロック要求を送信するように構成される、第4の送信モジュール1010と、ロック調停サーバによって送信されたロック確認応答メッセージを受信するように構成される、第2の受信モジュール1020と、ロック確認応答メッセージに基づいて、セカンダリデータベースを新たなプライマリデータベースに切り替えるように構成される、第5の処理モジュール1030と、を含む。
【０１４８】
実際の適用において、プライマリデータベースが変更されないようにしておくために、すなわち、プライマリデータベースに欠陥がないとき、またはアップグレードもしくはメンテナンス動作を実行するときに、プライマリデータベースがセカンダリデータベースに切り替えられるのを防止するために、プライマリデータベースの優先度は、セカンダリデータベースの優先度よりも高く、それによって、プライマリデータベースに欠陥がないとき、またはアップグレードもしくはメンテナンス動作を実行するときに、ロックを保持するデータベースがプライマリデータベースであることを保証すると、理解され得る。しかしながら、プライマリデータベースが、ロックの有効期間を事実上延長できないとき、ロック調停サーバは、ユーザにサービスし続けるために、セカンダリデータベースのうちの1つをプライマリデータベースとして選択する必要がある。
【０１４９】
具体的には、第4の送信モジュール1010は、ロック要求をロック調停サーバに送信し、したがって、プライマリデータベースが事実上ロックを更新できないときに、セカンダリデータベースが、素早くロックを獲得する。第2の受信モジュール1020は、ロック調停サーバによって送信されたロック確認応答メッセージを受信し、したがって、第5の処理モジュール1030は、ロック確認応答メッセージに基づいて、セカンダリデータベースをプライマリデータベースに切り替える。
【０１５０】
プライマリおよびセカンダリデータベースを配備する複数の方法、例えば、1つのプライマリデータベースおよび1つのセカンダリデータベースを配備する方法、または1つのプライマリデータベースおよび複数のセカンダリデータベースを配備する方法が存在することは注目に値する。
【０１５１】
説明を容易にするために、本出願の本実施は、プライマリおよびセカンダリデータベースを配備する方法が、2地点3データセンタ方式である例を用いて説明される。すなわち、セカンダリデータベースが、ホットスタンバイデータベースおよびディザスタリカバリデータベースを含み、プライマリデータベースおよびホットスタンバイデータベースが、同一のデータセンタに位置し、プライマリデータベースおよびディザスタリカバリデータベースが、異なるデータセンタに位置する。
【０１５２】
結論として、本出願の本実施におけるセカンダリデータベースサーバは、プライマリデータベースによって保持されるロックが無効であり、プライマリデータベースがユーザに正常にサービスできないと判定されるときに、ロック要求をロック調停サーバに送信して、セカンダリデータベースを新たなプライマリデータベースに切り替える。それによって、プライマリデータベースとセカンダリデータベースとの間の切り替え速度および正確性を改善し、サービスが正常にユーザに提供され得ることを保証し、ユーザエクスペリエンスを改善する。
【０１５３】
前述の実施に基づいて、セカンダリデータベースサーバが、特定の周期でロックの状態を問い合わせるためのロック要求を常に能動的に送信するとは限らない場合、プライマリデータベースによって保持されるロックが無効であるとき、ロック失効通知が、他のセカンダリデータベースのそれぞれに能動的に送信される。したがって、セカンダリデータベースサーバは、ロック失効通知に基づいてロック要求を送信し、ロックを取得し、新たなプライマリデータベースになる。
【０１５４】
具体的には、図12は、本出願の特定の実施による、セカンダリデータベースサーバを示す概略構造図である。図12に示すように、図11を基にして、セカンダリデータベースサーバは、第3の送信モジュール1040をさらに含む。
【０１５５】
具体的には、ロック調停サーバが、プライマリデータベースによって保持されるロックが失効したと判定した後、第3の受信モジュール1040が、ロック調停サーバによって送信されたロック失効通知を受信し、第4の送信モジュール1010が、ロック失効通知に基づいて、ロック要求をロック調停サーバに送信する。
【０１５６】
さらに、ロックが失効するとき、ロック調停サーバが、プライマリデータベースのロック更新要求を受信しない場合、それは、現在のデータベースに欠陥があるか、またはアップグレードもしくはメンテナンス動作を実行していることを示す。したがって、可能な限り早くユーザに正常にサービスするために、ロック調停サーバは、プライマリデータベースとして、最も早い受信時間を有するセカンダリデータベースを選択する。
【０１５７】
結論として、本出願の本実施におけるセカンダリデータベースサーバに基づいて、プライマリデータベースのロックが失効し、無効であるときに、セカンダリデータベースは、素早くロックを取得し、新たなプライマリデータベースになる。それによって、正常なサービスが依然として比較的短時間でユーザに提供されることを保証し、ユーザエクスペリエンスを改善する。
【０１５８】
実際の適用では、メンテナンスおよびアップグレードなどの関連する動作が、欠陥のある元のプライマリデータベース上で実行された後、元のプライマリデータベースが、ユーザにサービスし続けることができる。したがって、本出願の本実施におけるセカンダリデータベースサーバは、元のプライマリデータベースが復元された後に、現在のプライマリデータベースをセカンダリデータベースに切り替えるようにさらに構成される。
【０１５９】
図13は、本出願の別の特定の実施による、セカンダリデータベースサーバを示す概略構造図である。図13に示すように、図11を基にして、セカンダリデータベースサーバは、第6の処理モジュール1050をさらに含む。
【０１６０】
具体的には、元のプライマリデータベースが復元された後、元のプライマリデータベースは、ロック要求を送信する。元のプライマリデータベースの優先度がより高いため、ロック要求を受信した後、ロック調停サーバは、元のプライマリデータベースをプライマリデータベースに復元し、第6の処理モジュール1050は、現在のプライマリデータベースをセカンダリデータベースに復元する。
【０１６１】
本出願におけるセカンダリデータベースサーバの実施において開示されない詳細について、図1〜図4に関連して説明されたプライマリおよびセカンダリデータベースを管理する方法に対して参照が行われ得ると、理解されるべきである。簡略化のため、詳細はここでは省略する。
【０１６２】
結論として、元のプライマリデータベースが復元された後、本出願の本実施におけるセカンダリデータベースサーバは、現在のプライマリデータベースをセカンダリデータベースに復元し、調停サーバは、ユーザにより良くサービスするために、元のプライマリデータベースをプライマリデータベースに復元し、それによって、ユーザエクスペリエンスを改善する。
【０１６３】
前述の実施を実装するために、本出願は、プライマリおよびセカンダリデータベースを管理するシステムをさらに提供する。図14は、本出願の実施による、プライマリおよびセカンダリデータベースを管理するシステムを示す概略構造図である。図14に示すように、プライマリおよびセカンダリデータベースを管理するシステムは、ロック調停サーバ1000、プライマリデータベースサーバ2000、およびセカンダリデータベースサーバ3000を含む。
【０１６４】
本出願におけるロック調停サーバ1000、プライマリデータベースサーバ2000、およびセカンダリデータベースサーバ3000の説明について、ロック調停サーバ、プライマリデータベースサーバ、およびセカンダリデータベースサーバの前述の説明に対して参照が行われ得ることは、注目に値する。簡略化のため、詳細はここでは省略する。
【０１６５】
結論として、本出願の本実施におけるプライマリおよびセカンダリデータベースを管理するシステムによれば、プライマリデータベースによって保持されるロックが失効するかどうかが判定される。プライマリデータベースによって保持されるロックが失効したと判定される場合、プライマリデータベースのロック更新要求が受信されるかどうかが判定される。ロック更新要求が受信されない場合、セカンダリデータベースのうちの1つが新たなプライマリデータベースとして選択され、プライマリデータベースは、セカンダリデータベースに切り替えられるように制御される。システムによれば、プライマリデータベースによって保持されるロックが失効する前に、プライマリデータベースがロック更新要求を送信しない場合、プライマリデータベースによって保持されるロックが無効であり、かつプライマリデータベースがユーザに正常にサービスできないと判定される。したがって、セカンダリデータベースが、新たなプライマリデータベースとして選択され、それによって、プライマリデータベースとセカンダリデータベースとの間の切り替え速度および正確性を改善する。
【０１６６】
さらに、「第1の」および「第2の」という用語は、単に説明のために使用されており、相対的重要性の標識もしくは暗示、または示される技術的特徴の数の暗黙の標識として理解されないものとする。したがって、「第1の」または「第2の」によって限定される特徴は、明示的に、または暗示的に少なくとも1つのそのような特徴を含み得る。本出願の説明において、そうでないと特に限定されない限り、「複数の」は、「少なとも2つの」、例えば、2つまたは3つを意味する。
【０１６７】
本明細書の説明において、「実施」、「いくつかの実施」、「例」、「特定の例」、および「いくつかの例」という参照用語は、実施または例に関連して説明される特定の特徴、構造、物質、または特性が、本出願における少なくとも1つの実施または例に含まれることを意味する。本明細書において、用語の前述の例は、必ずしも同一の実施または例に関連するわけではない。さらに、説明された特定の特徴、構造、物質、または特性は、実施または例のうちの任意の1つまたは複数において、適切なやり方で組み合わされ得る。さらに、当業者は、本明細書において説明される異なる実施または例、および異なる実施または例の特性を、それらが互いに矛盾しない限り、統合し、または組み合わせ得る。
【０１６８】
本出願の実施が、上記で示され、説明されたが、前述の実施は例であり、本出願に対する限定として解釈されるべきでないと理解され得る。本出願の範囲内において、当業者は、前述の実施に対して、変更、修正、置換、および変形を行い得る。
【符号の説明】
【０１６９】
510  第1の判定モジュール
520  第2の判定モジュール
530  第1の処理モジュール
540  第1の送信モジュール
550  記録モジュール
560  第1の受信モジュール
570  第2の処理モジュール
580  第3の処理モジュール
590  第4の処理モジュール
910  第2の送信モジュール
920  切替モジュール
930  第3の送信モジュール
1010  第4の送信モジュール
1020  第2の受信モジュール
1030  第5の処理モジュール
1040  第3の受信モジュール
1050  第6の処理モジュール
1000  ロック調停サーバ
2000  プライマリデータベースサーバ
3000  セカンダリデータベースサーバ
【図１】
0006905161.tif 000002
【図２ａ】
0006905161.tif 000003
【図２ｂ】
0006905161.tif 000004
【図２ｃ】
0006905161.tif 000005
【図３】
0006905161.tif 000006
【図４】
0006905161.tif 000007
【図５】
0006905161.tif 000008
【図６】
0006905161.tif 000009
【図７】
0006905161.tif 000010
【図８】
0006905161.tif 000011
【図９】
0006905161.tif 000012
【図１０】
0006905161.tif 000013
【図１１】
0006905161.tif 000014
【図１２】
0006905161.tif 000015
【図１３】
0006905161.tif 000016
【図１４】
0006905161.tif 000017