JP6905161B2 - マスタおよびスタンバイデータベースのための管理方法、システム、およびデバイス - Google Patents

マスタおよびスタンバイデータベースのための管理方法、システム、およびデバイス Download PDF

Info

Publication number
JP6905161B2
JP6905161B2 JP2019533442A JP2019533442A JP6905161B2 JP 6905161 B2 JP6905161 B2 JP 6905161B2 JP 2019533442 A JP2019533442 A JP 2019533442A JP 2019533442 A JP2019533442 A JP 2019533442A JP 6905161 B2 JP6905161 B2 JP 6905161B2
Authority
JP
Japan
Prior art keywords
lock
database
primary database
primary
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019533442A
Other languages
English (en)
Other versions
JP2020502686A (ja
JP2020502686A5 (ja
Inventor
ジェンクン・ヤン
グイ・フアン
Original Assignee
アント フィナンシャル (ハーン ジョウ) ネットワーク テクノロジー カンパニー,リミティド
アント フィナンシャル (ハーン ジョウ) ネットワーク テクノロジー カンパニー,リミティド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アント フィナンシャル (ハーン ジョウ) ネットワーク テクノロジー カンパニー,リミティド, アント フィナンシャル (ハーン ジョウ) ネットワーク テクノロジー カンパニー,リミティド filed Critical アント フィナンシャル (ハーン ジョウ) ネットワーク テクノロジー カンパニー,リミティド
Publication of JP2020502686A publication Critical patent/JP2020502686A/ja
Publication of JP2020502686A5 publication Critical patent/JP2020502686A5/ja
Application granted granted Critical
Publication of JP6905161B2 publication Critical patent/JP6905161B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2041Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2025Failover techniques using centralised failover control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2043Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/825Indexing scheme relating to error detection, to error correction, and to monitoring the problem or solution involving locking

Landscapes

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

Description

本出願は、情報セキュリティ技術の分野に関し、特に、プライマリおよびセカンダリデータベースを管理する方法、システム、および装置に関する。
データベースは、金融、商業、輸送などの分野において、および社会全体においてでさえも、重要な基盤である。データベースの連続可用性は、金融および商業分野などの分野において、サービスがユーザに連続的に提供され得ることを保証し得る。単一のデータベースに欠陥があることを防止し、データベースの可用性を改善するために、通常は、プライマリデータベースおよびセカンダリデータベースが構成される。プライマリデータベースに欠陥があるとき、ユーザにサービスし続けるために、プライマリデータベースがセカンダリデータベースに切り替えられる。
関連技術において、プライマリデータベースとセカンダリデータベースとの間の切り替えは、自動的であり得る。すなわち、プライマリデータベースのためにモニタリングシステムが配備され、プライマリデータベースが異常であることを発見すると、モニタリングシステムが、警告およびプライマリデータベースとセカンダリデータベースとの間の切り替えのためのコマンドを送信する。
しかしながら、プライマリデータベースとセカンダリデータベースとの間の切り替えのための前述の方法においては、誤判定に起因して以下の事例、プライマリデータベースに欠陥がないときにプライマリデータベースが切り替えられる、またはプライマリデータベースに欠陥があるが、切り替えられない、ということが発生し得る。その結果、ユーザに提供される正常なサービスが影響を受ける。
本出願は、前述の技術的問題のうちの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 セカンダリデータベースサーバ

Claims (20)

  1. プライマリデータベースおよび複数のセカンダリデータベースを維持するための、コンピュータで実行される方法であって、前記プライマリデータベースおよび前記複数のセカンダリデータベースがロックを共有し、前記コンピュータで実行される方法は、
    前記プライマリデータベースによって保持される前記ロックが失効したと判定するステップを含み
    記ロックの有効期間が失効する前に、前記有効期間を延長するように、前記ロックが更新され、
    前記ロックが、第1の期間T1を有する更新周期の間に更新され、
    前記プライマリデータベースが、第2の期間T2を有する周期で、前記ロックの状態を照会するためのロック要求を送信し、
    前記複数のセカンダリデータベースのうちの特定のセカンダリデータベースが、第3の期間T3を有する周期で、前記ロックの前記状態を照会するためのロック要求を送信し、
    前記第2の期間T2が、前記第1の期間T1よりも短く、
    前記第3の期間T3が、前記第1の期間T1よりも長いまたは等しく、
    前記方法は、
    前記プライマリデータベースによって保持される前記ロックが失効したとの判定に応答して、前記ロックが失効した後に、前記プライマリデータベースのロック更新要求が受信されていないと判定するステップと、
    前記プライマリデータベースの前記ロック更新要求が受信されていないとの判定に応答して、前記特定のセカンダリデータベースを新たなプライマリデータベースとして選択するステップ、および前記プライマリデータベースが前記セカンダリデータベースに切り替えられるように制御するステップとを含む、
    コンピュータで実行される方法。
  2. ロック失効通知を前記特定のセカンダリデータベースに送信するステップと、
    前記ロック失効通知に基づいて、前記特定のセカンダリデータベースからのロック要求を受信するステップ、および前記ロック要求の受信時間を記録するステップとをさらに含む、
    請求項1に記載のコンピュータで実行される方法。
  3. 前記特定のセカンダリデータベースを選択するステップが、
    前記複数のセカンダリデータベースのうちの、最も早い受信時間を有するセカンダリデータベースを選択するステップを含む、
    請求項2に記載のコンピュータで実行される方法。
  4. 前記プライマリデータベースの優先度が、前記特定のセカンダリデータベースの優先度よりも高い、
    請求項1に記載のコンピュータで実行される方法。
  5. 前記特定のセカンダリデータベースが、ホットスタンバイデータベースおよびディザスタリカバリデータベースを含み
    前記プライマリデータベースおよび前記ホットスタンバイデータベースが、同一のデータセンタに位置し、
    前記プライマリデータベースおよび前記ディザスタリカバリデータベースが、異なるデータセンタに位置する、
    請求項1に記載のコンピュータで実行される方法。
  6. 前記プライマリデータベースのメンテナンスまたはアップグレードのうちの少なくとも一方を含む動作を実行するステップをさらに含む、
    請求項1に記載のコンピュータで実行される方法。
  7. 前記プライマリデータベースのメンテナンスまたはアップグレードのうちの少なくとも一方を含む動作が完了したかどうかを判定するステップと、
    前記プライマリデータベースのメンテナンスまたはアップグレードのうちの少なくとも一方を含む動作が完了したとの判定に応答して、前記プライマリデータベースを復元するステップをさらに含む、
    請求項6に記載のコンピュータで実行される方法。
  8. 前記プライマリデータベースが復元された後に、前記方法は、
    元のプライマリデータベースによって送信されたロック要求を受信するステップ、および前記ロックが失効した後に、前記元のプライマリデータベースによって保持されるように前記ロックを制御するステップをさらに含み、
    前記元のプライマリデータベースが、前記プライマリデータベースに復元され、
    現在のプライマリデータベースが、前記複数のセカンダリデータベースのうちの1つに復元される、
    請求項7に記載のコンピュータで実行される方法。
  9. 前記現在のプライマリデータベースによって保持されるロックが失効したかどうかを判定し続けるステップと、
    前記現在のプライマリデータベースによって保持される前記ロックが失効したとの判定に応答して、前記元のプライマリデータベースのロック要求、前記現在のプライマリデータベースのロック要求、および他の複数のセカンダリデータベースのロック要求が受信されたかどうかを判定するステップをさらに含む、
    請求項8に記載のコンピュータで実行される方法。
  10. 前記元のプライマリデータベースの前記ロック要求が受信されたとの判定に応答して、前記元のプライマリデータベースを前記プライマリデータベースに復元するステップ、および前記現在のプライマリデータベースを前記複数のセカンダリデータベースのうちの1つに復元するステップをさらに含む、
    請求項8に記載のコンピュータで実行される方法。
  11. 前記元のプライマリデータベースのロック要求が受信されておらずかつ前記現在のプライマリデータベースのロック要求および他の複数のセカンダリデータベースのロック要求が受信されたとの判定に応答して、前記現在のプライマリデータベースを前記プライマリデータベースとして維持するステップをさらに含む、
    請求項8に記載のコンピュータで実行される方法。
  12. 前記元のプライマリデータベースのロック要求および前記現在のプライマリデータベースのロック要求が受信されておらずかつ他の複数のセカンダリデータベースのロック要求が受信されたとの判定に応答して、前記他の複数のセカンダリデータベースのうちの1つを前記プライマリデータベースとして選択するステップ、および前記現在のプライマリデータベースを前記複数のセカンダリデータベースのうちの1つに復元するステップをさらに含む、
    請求項8に記載のコンピュータで実行される方法。
  13. プライマリデータベースおよび複数のセカンダリデータベースを維持する動作を実行するコンピュータシステムによって実行可能な1つまたは複数の命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記プライマリデータベースおよび前記複数のセカンダリデータベースが、ロックを共有し、前記動作が、
    プライマリデータベースによって保持される前記ロックが失効したと判定するステップを含み
    記ロックの有効期間が失効する前に、前記有効期間を延長するように、前記ロックが更新され、
    前記ロックが、第1の期間T1を有する更新周期の間に更新され、
    前記プライマリデータベースが、第2の期間T2を有する周期で、前記ロックの状態を照会するためのロック要求を送信し、
    前記複数のセカンダリデータベースのうちの特定のセカンダリデータベースが、第3の期間T3を有する第3の期間T3で、前記ロックの前記状態を照会するためのロック要求を送信し、
    前記第2の期間T2が、前記第1の期間T1よりも短く、
    前記第3の期間T3が、前記第1の期間T1よりも長いまたは等しく、
    前記動作が、
    前記プライマリデータベースによって保持される前記ロックが失効したとの判定に応答して、前記ロックが失効した後に、前記プライマリデータベースのロック更新要求が受信されていないと判定するステップと、
    前記プライマリデータベースの前記ロック更新要求が受信されていないとの判定に応答して、前記特定のセカンダリデータベースを新たなプライマリデータベースとして選択するステップ、および前記プライマリデータベースが前記セカンダリデータベースに切り替えられるように制御するステップを含む、
    非一時的コンピュータ可読記憶媒体。
  14. 前記動作が、
    ロック失効通知を前記特定のセカンダリデータベースに送信するステップと、
    前記ロック失効通知に基づいて、前記特定のセカンダリデータベースからのロック要求を受信するステップ、および前記ロック要求の受信時間を記録するステップとをさらに含む、
    請求項13に記載の非一時的コンピュータ可読記憶媒体。
  15. 前記特定のセカンダリデータベースを選択するステップが、
    前記複数のセカンダリデータベースのうちの、最も早い受信時間を有するセカンダリデータベースを選択するステップを含む、
    請求項14に記載の非一時的コンピュータ可読記憶媒体。
  16. 前記プライマリデータベースの優先度が、前記特定のセカンダリデータベースの優先度よりも高い、
    請求項13に記載の非一時的コンピュータ可読記憶媒体。
  17. プライマリデータベースおよび複数のセカンダリデータベースを維持するための、コンピュータが実装されたシステムであって、前記プライマリデータベースおよび前記複数のセカンダリデータベースが、ロックを共有し、前記システムは、
    1つまたは複数のコンピュータと、
    前記1つまたは複数のコンピュータと相互動作可能に結合した1つまたは複数のコンピュータメモリ装置であって、前記1つまたは複数のコンピュータによって実行された場合に、以下の1つまたは複数の動作を行うための1つまたは複数の命令を記憶している有形の非一時的マシン可読記憶媒体を有する1つまたは複数のコンピュータメモリ装置とを備え、前記動作が、
    プライマリデータベースによって保持される前記ロックが失効したと判定するステップを含み
    記ロックの有効期間が失効する前に、前記有効期間を延長するように、前記ロックが更新され、
    前記ロックが、第1の期間T1を有する更新周期の間に更新され、
    前記プライマリデータベースが、第2の期間T2を有する周期で、前記ロックの状態を照会するためのロック要求を送信し、
    前記セカンダリデータベースのうちの特定のセカンダリデータベースが、第3の期間T3を有する第3の期間T3で、前記ロックの前記状態を照会するためのロック要求を送信し、
    前記第2の期間T2が、前記第1の期間T1よりも短く、
    前記第3の期間T3が、前記第1の期間T1よりも長いまたは等しく、
    前記動作が、
    前記プライマリデータベースによって保持される前記ロックが失効したとの判定に応答して、前記ロックが失効した後に、前記プライマリデータベースのロック更新要求が受信されていないと判定するステップと、
    前記プライマリデータベースの前記ロック更新要求が受信されていないとの判定に応答して、前記特定のセカンダリデータベースを新たなプライマリデータベースとして選択するステップ、および前記プライマリデータベースが前記セカンダリデータベースに切り替えられるように制御するステップとを含む、
    システム。
  18. 前記動作が、
    ロック失効通知を前記特定のセカンダリデータベースに送信するステップと、
    前記ロック失効通知に基づいて、前記特定のセカンダリデータベースからのロック要求を受信するステップ、および前記ロック要求の受信時間を記録するステップとをさらに含む、
    請求項17に記載のシステム。
  19. 前記特定のセカンダリデータベースを選択するステップが、
    前記複数のセカンダリデータベースのうちの、最も早い受信時間を有するセカンダリデータベースを選択するステップを含む、
    請求項18に記載のシステム。
  20. 前記プライマリデータベースの優先度が、前記特定のセカンダリデータベースの優先度よりも高い、
    請求項17に記載のシステム。
JP2019533442A 2016-12-20 2017-12-11 マスタおよびスタンバイデータベースのための管理方法、システム、およびデバイス Active JP6905161B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201611183638.9 2016-12-20
CN201611183638.9A CN107066480B (zh) 2016-12-20 2016-12-20 主备数据库的管理方法、系统及其设备
PCT/CN2017/115392 WO2018113543A1 (zh) 2016-12-20 2017-12-11 主备数据库的管理方法、系统及其设备

Publications (3)

Publication Number Publication Date
JP2020502686A JP2020502686A (ja) 2020-01-23
JP2020502686A5 JP2020502686A5 (ja) 2020-04-02
JP6905161B2 true JP6905161B2 (ja) 2021-07-21

Family

ID=59619184

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019533442A Active JP6905161B2 (ja) 2016-12-20 2017-12-11 マスタおよびスタンバイデータベースのための管理方法、システム、およびデバイス

Country Status (9)

Country Link
US (1) US10592361B2 (ja)
EP (1) EP3561694B1 (ja)
JP (1) JP6905161B2 (ja)
KR (1) KR102142233B1 (ja)
CN (1) CN107066480B (ja)
PH (1) PH12019501392A1 (ja)
SG (2) SG10202012899PA (ja)
TW (1) TWI677797B (ja)
WO (1) WO2018113543A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107066480B (zh) * 2016-12-20 2020-08-11 创新先进技术有限公司 主备数据库的管理方法、系统及其设备
US10999392B2 (en) * 2019-03-01 2021-05-04 Accenture Global Solutions Limited Message recovery system for computing nodes with replicated databases
CN110442650A (zh) * 2019-08-09 2019-11-12 中国工商银行股份有限公司 数据库切换方法、装置、系统、电子设备及存储介质
CN110765143B (zh) * 2019-10-10 2022-08-02 腾讯科技(深圳)有限公司 数据处理方法、装置、服务器和存储介质
CN111159156B (zh) * 2019-12-31 2023-04-28 杭州迪普科技股份有限公司 SQLite数据库的备份方法和装置
US11379477B2 (en) 2020-03-31 2022-07-05 Sap Se Efficient workload balancing in replicated databases based on result lag computation

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040003317A1 (en) * 2002-06-27 2004-01-01 Atul Kwatra Method and apparatus for implementing fault detection and correction in a computer system that requires high reliability and system manageability
US7254736B2 (en) * 2002-12-18 2007-08-07 Veritas Operating Corporation Systems and method providing input/output fencing in shared storage environments
US7284151B2 (en) * 2003-07-21 2007-10-16 Oracle International Corporation Conditional data access after database system failure
TWI306241B (en) * 2004-07-12 2009-02-11 Infortrend Technology Inc A controller capable of self-monitoring, a redundant storage system having the same, and its method
US7496701B2 (en) * 2004-11-18 2009-02-24 International Business Machines Corporation Managing virtual server control of computer support systems with heartbeat message
CN100362482C (zh) * 2005-07-21 2008-01-16 上海华为技术有限公司 一种双机备份实现方法及系统
CN100449548C (zh) * 2007-04-11 2009-01-07 华为技术有限公司 数据库同步方法及系统
US9575985B2 (en) * 2009-12-07 2017-02-21 Novell, Inc. Distributed lock administration
US8984328B2 (en) * 2011-03-11 2015-03-17 Microsoft Technology Licensing, Llc Fault tolerance in a parallel database system
US9348883B2 (en) * 2011-06-01 2016-05-24 Clustrix, Inc. Systems and methods for replication replay in a relational database
CN102831038B (zh) * 2011-06-17 2019-03-01 中兴通讯股份有限公司 Enum-dns的容灾方法及enum-dns
US9116862B1 (en) * 2012-01-17 2015-08-25 Amazon Technologies, Inc. System and method for data replication using a single master failover protocol
US8719225B1 (en) * 2012-01-17 2014-05-06 Amazon Technologies, Inc. System and method for log conflict detection and resolution in a data store
CN102739451B (zh) * 2012-06-29 2014-12-03 华为技术有限公司 一种主备切换条件更新方法、装置、服务器及系统
CN102891849B (zh) * 2012-09-25 2015-07-22 北京星网锐捷网络技术有限公司 业务数据同步方法、恢复方法及装置和网络设备
US9009444B1 (en) * 2012-09-29 2015-04-14 Emc Corporation System and method for LUN control management
CN102945195B (zh) * 2012-11-26 2015-11-18 国电南瑞科技股份有限公司 一种基于SQLite数据库的主备冗余复制方法
US9667490B1 (en) * 2013-06-05 2017-05-30 Parallels IP Holdings GmbH Method for high availability of services in cloud computing systems
US9274902B1 (en) * 2013-08-07 2016-03-01 Amazon Technologies, Inc. Distributed computing fault management
CN103593266B (zh) * 2013-11-12 2016-06-22 浪潮(北京)电子信息产业有限公司 一种基于仲裁盘机制的双机热备方法
US20150339200A1 (en) * 2014-05-20 2015-11-26 Cohesity, Inc. Intelligent disaster recovery
TWI529624B (zh) * 2015-03-19 2016-04-11 Univ Nat Central Method and system of fault tolerance for multiple servers
CN104778102A (zh) * 2015-03-27 2015-07-15 深圳市创梦天地科技有限公司 一种主备切换方法及系统
CN106202075B (zh) * 2015-04-29 2021-02-19 中兴通讯股份有限公司 一种数据库主备切换的方法及装置
CN105933379B (zh) * 2016-04-01 2018-10-09 浪潮电子信息产业股份有限公司 一种业务处理方法、设备及系统
CN107066480B (zh) * 2016-12-20 2020-08-11 创新先进技术有限公司 主备数据库的管理方法、系统及其设备

Also Published As

Publication number Publication date
EP3561694B1 (en) 2022-06-22
CN107066480A (zh) 2017-08-18
EP3561694A4 (en) 2019-12-18
KR102142233B1 (ko) 2020-08-07
TWI677797B (zh) 2019-11-21
US20190251008A1 (en) 2019-08-15
EP3561694A1 (en) 2019-10-30
CN107066480B (zh) 2020-08-11
SG10201913120SA (en) 2020-03-30
JP2020502686A (ja) 2020-01-23
SG10202012899PA (en) 2021-01-28
US10592361B2 (en) 2020-03-17
TW201824030A (zh) 2018-07-01
WO2018113543A1 (zh) 2018-06-28
PH12019501392A1 (en) 2020-02-10
KR20190095443A (ko) 2019-08-14

Similar Documents

Publication Publication Date Title
JP6905161B2 (ja) マスタおよびスタンバイデータベースのための管理方法、システム、およびデバイス
US10713135B2 (en) Data disaster recovery method, device and system
CN109005045B (zh) 主备服务系统及主节点故障恢复方法
US8412790B2 (en) Method, system and computer readable recording medium for determining major group under split-brain syndrome
US20080281938A1 (en) Selecting a master node in a multi-node computer system
US11892922B2 (en) State management methods, methods for switching between master application server and backup application server, and electronic devices
US20170293540A1 (en) Failover of application services
CN106062717A (zh) 一种分布式存储复制系统和方法
US8533525B2 (en) Data management apparatus, monitoring apparatus, replica apparatus, cluster system, control method and computer-readable medium
WO2011103763A1 (zh) 数据容灾的方法、装置及系统
CN104767794A (zh) 一种分布式系统中的节点选举方法及节点
CN106685688A (zh) 一种集群计算机设备同步升级方法
CN109189854B (zh) 提供持续业务的方法及节点设备
CN108509296B (zh) 一种处理设备故障的方法和系统
CN105323271B (zh) 一种云计算系统以及云计算系统的处理方法和装置
CN114598711B (zh) 一种数据迁移方法、装置、设备及介质
CN104052799A (zh) 一种利用资源环实现高可用存储的方法
CN107590032A (zh) 存储集群故障转移的方法及存储集群系统
JP2009169449A (ja) 高信頼化データベースシステムおよびその同期方法、仲介方法、仲介装置、仲介プログラム
CN113961402A (zh) 一种虚拟化集群的管理方法、装置、设备及介质
US8713359B1 (en) Autonomous primary-mirror synchronized reset
WO2021259171A1 (zh) 运行状态的切换方法及装置、主备管理系统、网络系统
US20150347239A1 (en) Global backup lock manager
CN115633046A (zh) Kafka高可用方案优化方法、装置、设备及存储介质
CN114422567A (zh) 数据请求的处理方法、装置、系统、计算机设备及介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190814

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190814

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200214

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200214

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200306

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200929

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201221

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20201228

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210119

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20210225

R150 Certificate of patent or registration of utility model

Ref document number: 6905161

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250