JP2014170567A - 複製されたデータインスタンスのためのフェイルオーバーおよび復旧 - Google Patents

複製されたデータインスタンスのためのフェイルオーバーおよび復旧 Download PDF

Info

Publication number
JP2014170567A
JP2014170567A JP2014085421A JP2014085421A JP2014170567A JP 2014170567 A JP2014170567 A JP 2014170567A JP 2014085421 A JP2014085421 A JP 2014085421A JP 2014085421 A JP2014085421 A JP 2014085421A JP 2014170567 A JP2014170567 A JP 2014170567A
Authority
JP
Japan
Prior art keywords
replica
primary
instance replica
data
instance
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.)
Granted
Application number
JP2014085421A
Other languages
English (en)
Other versions
JP5860497B2 (ja
Inventor
Grant Alexander Macdonald Mcalister
アレクサンダー マクドナルド マクアリスター グラント
Swaminathan Sivasubramanian
シヴァサブラマニアン スワミナサン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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 Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of JP2014170567A publication Critical patent/JP2014170567A/ja
Application granted granted Critical
Publication of JP5860497B2 publication Critical patent/JP5860497B2/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/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
    • G06F11/1469Backup restoration techniques
    • 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/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/1443Transmit or communication errors
    • 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/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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
    • G06F11/1464Management of the backup or restore process for networked environments
    • 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/2053Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • 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/2053Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2064Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring while ensuring consistency
    • 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/2053Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2069Management of state, configuration or failover
    • 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/2053Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2082Data synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • 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
    • G06F16/275Synchronous replication
    • 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/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/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/2048Error 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 neither address space nor persistent storage
    • 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/2053Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • G06F11/2076Synchronous techniques

Abstract

【課題】データベース環境内の複製データベースインスタンスを管理する方法およびシステムを提供する。
【解決手段】当該方法は、実行可能な命令を用いて構成される1つ以上のコンピュータシステムの制御下で、別個の制御環境の監視構成要素を使用して、データベース環境内の一次インスタンス複製および二次インスタンス複製のそれぞれに対する状態情報を監視することと、監視構成要素が、少なくとも一次インスタンス複製または二次インスタンス複製と通信することができないことに応答して、一次インスタンス複製および二次インスタンス複製が、互いに通信することが可能であるかどうか、並びに一次インスタンス複製および二次インスタンス複製が、共通のデータ世代識別子を有するかどうかを含む、故障情報を判定することと、故障情報に少なくとも部分的に基づき、フェイルオーバー操作または復旧プロセスを実行するかどうかを判定することと、を備える。
【選択図】図3

Description

ますます多くのアプリケーションおよびサービスが、インターネット等のネットワーク上で利用可能になるに従い、ますます多くのコンテンツ、アプリケーション、および/またはサービスプロバイダが、クラウドコンピューティング等の技術に方向転換している。クラウドコンピューティングは、一般的に、それらのサービスをサポートするために使用されるハードウェアおよび/またはソフトウェアが、どんなときでもサービスの必要性に適合するよう、動的に拡張可能であるウェブサービス等のサービスを介して、電子リソースへのアクセスを提供するアプローチである。ユーザまたは顧客は、典型的に、クラウドを介するリソースへのアクセスに対して賃借、賃貸、または別の方法で代金を支払い、したがって、これらのリソースへのアクセスを提供するハードウェアおよび/またはソフトウェアを購入および維持する必要はない。
クラウド内では様々なアプリケーションおよびリソースの態様を調整および管理することができる一方で、これらのアプリケーションおよびリソースが依存するデータ格納場所は、顧客または他のそのようなユーザによる同様の調整が可能ではないか、あるいは容易には管理されない。典型的に、データストレージのプロビジョニングおよび拡大縮小等のタスクを実行することは、単調な手作業であり、顧客は、データベース管理者(DBA)が、その設定が有効であるかどうかを判定することができるようにする設定情報および必要条件を伴って、DBAまたは同様の専門家ユーザを提供しなければならない。さらに、顧客がデータベースインスタンスのためのパラメータを、動的および/または自動的に調整するか、あるいはデータ格納場所の他のそのような態様を管理するための、容易な手段はない。多くの場合において、データインスタンスは、バックアップおよび復旧機構を所定の位置に有するであろうが、これらの機構は、しばしば、単一の位置または領域内にあり、その結果その領域内の故障または停電に敏感に反応する。さらに、データインスタンスが故障した際、新しいインスタンスを生成し、適切なボリュームを新しいインスタンスに付け、そうでなければ故障から復旧するために必要なタスクを実行するためには、典型的に、数分かかる。
本開示に従った様々な実施形態が、図面に関連して説明される。
様々な実施形態が実装され得る環境を図示する図である。 様々な実施形態に従って、使用することができる、制御プレーンおよびデータプレーンの別個の例を図示する図である。 様々な実施形態に従って、使用することができる、複数の監視構成要素を利用する例を図示する図である。 一実施形態に従って、使用することができる、複数のデータゾーンにわたって、複製されたデータインスタンスを実行するための実装の例を図示する図である。 一実施形態に従って、一次複製のための状態遷移図の例を図示する図である。 一実施形態に従って、監視構成要素のための状態遷移図の例を図示する図である。 一実施形態に従って、使用することができる、フェイルオーバー操作を実行するためのプロセスの例を図示する図である。 一実施形態に従って、使用することができる、二次複製を復旧するためのプロセスの例を図示する図である。 一実施形態に従って、使用することができる、イベントプロセッサを管理するためのプロセスの例を図示する図である。 一実施形態に従って、使用することができる、故障したイベントプロセッサに起因する再割り当ての例を図示する図である。 一実施形態に従って、使用することができる、新しいイベントプロセッサを追加するためのプロセスの例を図示する図である。
本開示の様々な実施形態に従った、システムおよび方法は、前述および電子環境内のデータ記憶の態様を管理するための従来のアプローチの経験がある他の欠陥の、1つ以上を克服することができる。具体的には、様々な実施形態は、別個の制御環境、ならびにユーザがデータ環境の様々な態様を管理するおよび/または変えることを可能にするために使用され得る制御プレーン、またはデータプレーンを提供する。この「セルフサービス」機能性は、ウェブサービスの1セットを通じて提供され得、ユーザおよび制御プレーンが、仮想データベース管理者(DBA)としてともに行動することを可能にする。ユーザまたは顧客は、例えば、複数の外部に可視的なアプリケーションプログラミングインターフェース(API)のうちの1つを介して、制御プレーンへ要求を投入することができる。様々なAPIは、データ環境内の関係データベース等のデータ格納場所に関する、特定の機能を実行するために使用することができる。APIのうちの1つに受信された要求は、分析され、データストアもしくはデータ記憶インスタンスの、操作または構成上のパラメータを調整する動作のような、データプレーン内で実行される望ましい動作(1つまたは複数)を決定することができる。ワークフロー構成要素のような構成要素は、その動作のための適切なタスクを決定し、そのタスクを、適切な順序で実行させることができる。関係データベースの態様を調整するような、これらのタスクのうちの少なくとも1つは、典型的に、データ環境内で実行されるであろう。
特定の実施形態に従って、そのようなシステムは、データ環境内の複製されたデータインスタンスのプロビジョニングを提供することができる。プロビジョニングは、1つ以上の別個のデータゾーン、別個の地理的な位置等の中、またはその全域にわたってプロビジョニングされる一次および二次複製の1つ1つを用いて、一次/二次複製アプローチを利用することができる。データベース複製は、別個のデータインスタンス上で動作することができ、その複製にわたって共有されない専用ブロック記憶ボリュームに、それぞれ付けられる。
様々な実施形態において、複製は、サーバ間のブロックデバイスのコンテンツをミラーし、冗長システムの全域で同期的にデータを複製することができる、Austria、ViennaのLinbit社からの分散複製型ブロックデバイス(Distributed Replicated Block Device(DRBD(登録商標)))、またはWashington、SeattleのAmazon.com,Inc.により提供されるエラスティックブロックストア(Elastic Block Store(EBS))等のブロックレベル複製機構を使用して、実行することができる。各インスタンスは、データインスタンスのための全ての入力および出力(I/O)操作を管理するためにインストールされる、ブロックレベル複製機構(BLRM)カーネルモジュールを有するカーネルを、実行することができる。全ての読み込みおよび書き込みは、一次複製において、二次複製とともにその情報を同期的に複製する、ブロックレベル複製機構を用いて実行することができる。
一次および二次複製の両方は、外装のDNS名を有することができる。顧客は、DNS_一次(DNS_primary)等のDNS名を使用して、現在の一次複製に到達することができる。DNS_一次(DNS_primary)名は、別名を付けるか、あるいは(現在の)一次複製の外部DNS名に対して、「cname」を付けることができる。一次複製が故障するか、またはそうでなければ利用できない場合、二次複製は、新しい一次複製になるように昇格させるか、またはフェイルオーバーさせることができ、それによって、DNS_一次(DNS_primary)のためのcnameは、新しい一次インスタンスのDNS名を更新することができる。全ての書き込みは、現在の一次複製上のデータベースに送信される。一次インスタンスが書き込みを受信する際、その情報は、二次複製へ同期的に書き込まれる。両方の場所において書き込みが成功すると、その書き込みは、成功したと判断され得る。全ての読み込みはまた、様々な実施形態内の一次複製においてのみ実行される。
データベース複製は、したがって、異なるデータゾーン内で動作するインスタンス複製を使用して、複数のデータインスタンスにわたってサポートされ得る。データベース書き込みは、複数のデータゾーン等を伴う大規模な停電のために全ての複製が利用できない場合を除いて、データが失われることがないように、ブロックレベルにおける同期複製機構を使用して、コミットすることができる。複製は、単一の複製故障が、データベースに対する長時間の停電を引き起こさないため、単一のデータベースインスタンスを使用して成し遂げられ得るよりも高い利用可能性を提供することができる。例えば、データベースの一次複製が停止している場合、様々な実施形態は、フェイルオーバー操作を実行することができ、それによって二次複製は、新しい一次複製を引き継ぐ。複製はまた、多くのインスタンス内の非複製データベースより高い耐久性を提供することができ、データゾーンの故障、データボリューム故障等から保護することができる。
図1は、様々な実施形態に従って態様を実装するための環境100の例を図示する。明らかなように、ウェブベースの環境は説明の目的のために使用されるが、異なる環境は、様々な実施形態を実装するために必要に応じて使用してもよい。示される環境100は、試験もしくは開発部分(または側面)および運用部分の両方を含む。運用部分は、適切なネットワーク104上の要求、メッセージ、または情報を送信および受信し、デバイスのユーザへ戻すよう情報を伝達するように操作可能なあらゆる適切なデバイスを含むことができる電子クライアントデバイス102を含む。そのようなクライアントデバイスの例は、パーソナルコンピュータ、携帯電話、ハンドヘルドメッセ−ジングデバイス、ラップトップコンピュータ、セットトップボックス、パーソナルデータアシスタント、および電子ブックリーダ等を含む。ネットワークは、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワークもしくはそのようなその他のネットワーク、またはそれらの組み合わせを含むあらゆる適切なネットワークを含むことができる。そのようなシステムに使用される構成要素は、少なくとも部分的に選択されるネットワークおよび/または環境の種類によって決まり得る。そのようなネットワークを経由して通信するためのプロトコルおよび構成要素は、よく知られており、本明細書に詳細に記載されない。ネットワーク上の通信は、有線のまたは無線の接続、およびそれらの組み合わせによって可能にされ得る。この例において、ネットワークは、その環境が要求を受信し、それに応答してコンテンツを供給するためのウェブサーバ106を含むため、インターネットを含むが、その他のネットワークのために同様の目的に対応する代替のデバイスが当業者に明らかであるように使用され得る。
例示的な環境は、少なくとも1つのアプリケーションサーバ108およびデータストア110を含む。鎖状にされるあるいは別の方法で構成することができ、適切なデータストアからデータを取得すること等のタスクを実行するよう相互に作用することができる、複数のアプリケーションサーバ、層、もしくは他の要素、プロセス、または構成要素が存在することを理解されたい。本明細書に使用される「データストア」という用語は、任意のデバイスまたは記憶、アクセス、およびデータの読み出しが可能であるデバイスの組み合わせを指し、任意の標準、分散型、またはクラスタ化された環境内のデータサーバ、データベース、データ記憶デバイス、ならびにデータ記憶媒体のあらゆる組み合わせおよび数を含んでもよい。アプリケーションサーバは、クライアントデバイスのための1つ以上のアプリケーションの態様を実行する必要に応じて、データストアと統合し、アプリケーションのためのデータアクセスおよびビジネスロジックの大部分を取り扱うためのあらゆる適切なハードウェアおよびソフトウェアを含むことができる。アプリケーションサーバは、データストアと連携してアクセス制御サービスを提供し、ユーザへ転送されるテキスト、グラフィック、オーディオ、および/またはビデオ等のコンテンツを生成することが可能であり、この例におけるHTML、XML、または別の適切な構造化言語の形態のウェブサーバによってユーザへ供給されてもよい。全ての要求および応答の取り扱いならびにクライアントデバイス102とアプリケーションサーバ108との間のコンテンツの送達は、ウェブサーバによって処理することができる。ウェブおよびアプリケーションサーバは、本明細書に記載される構造化コードが本明細書の他の箇所に記載されるようなあらゆる適切なデバイスまたはホストマシン上で実行され得るため、必要とされず、ただ単に例となる構成要素であることを理解されたい。さらに、環境は、試験自動化フレームワークがユーザまたはアプリケーションが申し込むことができるサービスとして提供され得るそのような手段において設計することができる。試験自動化フレームワークは、本明細書に記載される様々な試験パターンのうちのいずれかの実装として提供され得るが、本明細書に記載されるかまたは推奨されるように、様々な他の実装も同様に使用され得る。
環境はまた、開発者、データ管理者、または試験者等のユーザにシステムにアクセスすることを可能にするユーザデバイス118を含む開発および/または試験の側面を含む。ユーザデバイス118は、クライアントデバイス102に関して、上述されたいずれかの適切なデバイスまたは機械であり得る。環境はまた、アプリケーションサーバ108に類似して機能する開発サーバ120を含むが、例えば、運用側面上でコードが展開され、実行される前の開発および試験の間、典型的にコードを実行し、外部のユーザへアクセス可能である。いくつかの実施形態において、アプリケーションサーバは、開発サーバとして機能することができ、別個の運用および試験記憶装置は使用されなくてもよい。
データストア110は、複数の別個のデータテーブル、データベース、または特定の態様に関連するデータを記憶するための他のデータ記憶機構および媒体を含むことができる。例えば、図示されるデータストアは、運用データ112およびユーザ情報116を記憶するための機構を含み、運用側面のためのコンテンツを供給するために使用することができる。データストアはまた、試験データ114を記憶するための機構を含むよう示され、試験側面のためのユーザ情報とともに使用され得る。それらは、ページ画像情報およびアクセス権情報のための態様のようなデータストア内に記憶されることを必要とする場合がある多くの他の態様であり得、データストア110内の適切または追加的な機構として上記に列挙された機構のいずれかの中に記憶され得ることを理解されたい。データストア110は、操作可能であり、それとともに関連付けられるロジックを介してアプリケーションサーバ108または開発サーバ120から命令を受信し、それを取得、更新、またはそうでなければそのことに応答してデータを処理する。一例において、ユーザは、特定の種類の項目の検索要求を投入する場合がある。この場合、データストアは、ユーザの同一性を検証するためのユーザ情報にアクセスしてもよく、その種類の項目についての情報を取得するためのカタログ詳細情報にアクセスすることができる。次いでその情報は、ユーザユーザデバイス102上のブラウザを経由して見ることが可能であるウェブページ上に列挙する結果等のユーザへ返却され得る。該当の特定の項目のための情報は、専用ページまたはブラウザのウィンドウ内において見ることができる。
各サーバは、一般管理およびそのサーバの操作のための実行可能なプログラム命令を提供するオペレーティングシステムを典型的に含み、命令を記憶するコンピュータ可読媒体を典型的に含み、サーバのプロセッサによって実行される際、サーバにその意図される機能を実行することを可能にする。サーバのオペレーティングシステムおよび一般的な機能性に適している実装は、既知であるかまたは商業化が可能であり、特に本明細書の開示を踏まえると当業者によって容易に実装される。
一実施形態における環境は、1つ以上のコンピュータネットワークまたは直接接続を使用し、通信リンクを経由して相互接続される複数のコンピュータシステムおよび構成要素を利用する分散型のコンピューティング環境である。しかしながら、そのようなシステムが、図1に図示されるより少ないまたは多い構成要素の数を有するシステムにおいて、同様に良好な操作ができることは、当業者によって明らかになるであろう。したがって、図1のシステム100の描写は、例示的な性質があり、本開示の範囲に限定されないと理解されたい。
図1に図示されるような環境は、電子マーケット等のプロバイダに有用であり得、複数のホストが、コンテンツを供給すること、ユーザを認証すること、支払いトランザクションを実行すること、または複数のその他のタスクのいずれかを実行すること等のタスクを実行するために使用されてもよい。これらのホストのいくつかは、同一の機能性を提示するよう構成されてもよく、一方で他のサーバは、少なくともいくつかの異なる機能を実行するよう構成されてもよい。その場合、電子環境は、追加的な構成要素および/または以下に詳細に記載される図2の構成200に図示されるそれらのような他の配置を含んでもよい。
一実施形態に従ってシステムおよび方法は、開発者、顧客、または他の認定ユーザが、関係データベースおよびその他のデータソースを容易かつコスト効率よく取得および構成することを可能にし、ユーザがクラウド内の関係データセットを記憶すること、処理すること、および問い合わせすること等のタスクを実行することができるようにする関係データベースサービス(「RDS」)を提供する。この例がインターネット、ウェブサービス、およびインターネットベースの技術に関して説明される一方で、様々な実施形態の態様は、利用可能なあらゆる適切なサービスとともに使用されるか、あるいは電子環境内のネットワーク上で提示され得ると理解されたい。さらに、サービスが本明細書に「関係データベースサービス」として称される一方で、そのようなサービスは、データ格納場所のあらゆる適切な種類または電子環境内のデータ記憶とともに使用され得ると理解されたい。この例におけるRDSは、少なくとも1つのウェブサービスを含み、それはユーザまたは顧客が、展開、アップグレード、パッチ管理、バックアップ、複製、フェイルオーバー、容量管理、拡大縮小、および他のデータ管理のそのような態様の管理上の複雑性を心配することなく、関係データセットを容易に管理することを可能にする。開発者は、したがって、データベース基礎構造を管理することの複雑性を心配することなしに、洗練されたクラウドアプリケーションを開発するよう解放される。
一実施形態におけるRDSは、別個の「制御プレーン」を提供し、それはデータ記憶の態様を管理するために有用な構成要素(例えば、ハードウェアおよびソフトウェア)を含む。一実施形態において、データ管理アプリケーションプログラミングインターフェース(API)の1セットまたは他のそのようなインターフェースは、ユーザまたは顧客がデータ記憶に関連する特定のタスクを実行するよう、コールをRDSにすることを可能にすることを提供される。ユーザは、依然、データ格納場所と通信するためにダイレクトインターフェースまたはAPIを使用することができるが、しかしながら、データ記憶を管理するか、または同様のタスクを実行する必要がある場合にのみ、制御プレーンのRDS特定APIを使用することもできる。
図2は、RDS実装200の例を図示し、一実施形態に従って使用することができる。この例において、エンドユーザのためのコンピューティングデバイス202は、ネットワーク206を介して、コールを制御プレーン208にできるように示され、データプレーン210のデータ格納場所をプロビジョニングする等のタスクを実行する。ユーザまたはアプリケーション204は、プロビジョニングされた格納場所に直接的にデータプレーン210のインターフェースを介してアクセスすることができる。エンドユーザコンピューティングデバイスおよびアプリケーションが、説明の目的に使用される一方で、任意の適切なユーザ、アプリケーション、サービス、デバイス、構成要素、またはリソースは、様々な実施形態において必要である制御プレーンおよび/またはデータプレーンのインターフェース(1つまたは複数)にアクセスすることができることを理解されたい。さらに、構成要素は制御およびデータ「プレーン」に分けられるが、これは、それぞれの機能性を提供するために使用される、少なくともいくつかのリソース(例えば、ハードウェアおよび/またはソフトウェア)の現実または仮想の分離を指すことができると理解されたい。
この例における制御プレーン208は、本質的にハードウェアの仮想層およびソフトウェア構成要素であり、それは、プロビジョニング、拡大縮小、複製等のような制御および管理動作を処理する。この実施形態における制御プレーンは、ウェブサービス層212または階層を含み、それらは少なくとも1つのウェブサーバ、例えば、コンピュータ実行可能なソフトウェア、アプリケーションサーバ、または他のそのような構成要素とともに含むことができる。ウェブサービス層はまた、ウェブサービスコールまたは要求をネットワーク206内から受信するために、API232(または他のそのようなインターフェース)の1セットを含むこともできる。各APIは、関係データベースのインスタンスをプロビジョニングする、拡大縮小する、クローン化する、または休止状態にする等のデータ環境に関連して実行される少なくとも1つの特定の動作の要求を受信するために提供され得る。APIのうちの1つに対する要求を受信する上で、ウェブサービス層は、コールに従って動作するか、あるいはそのコールを処理する必要があるステップまたは動作を決定する要求を解析するか、または別の方法で分析することができる。例えば、ウェブサービスコールは、受信されてもよく、データ格納場所を作成する要求を含む。この例において、ウェブサービス層は、作られるデータ格納場所の種類、要求される記憶ボリューム、(もしあるとしたら)要求されるハードウェアの種類、または他のそのような態様を決定する要求を解析することができる。その要求のための情報は、後続の処理のために、ネットワーク管理組織(「Admin」)データストア222、または他の適切な記憶場所もしくはジョブ待ち行列へ書き込まれ得る。
一実施形態におけるウェブサービス層は、様々な制御プレーンAPIを提供し、API仕様書に基づいて適切な応答を返却することができ、顧客対応サーバの拡張可能なセットを含む。ウェブサービス層はまた、少なくとも1つのAPIサービス層を提供することができ、それは一実施形態において、外装の顧客APIを処理する処理状態を把握しないかつ複製されたサーバで構成される。ウェブサービス層は、認証情報に基づいて顧客を認証すること、顧客に権限を与えること、APIサーバに対する顧客要求を調整すること、ユーザ入力を有効にすること、ならびに要求および応答を整理または無秩序化すること等、ウェブサービスのフロントエンド特徴に関与することができる。API層はまた、APIコールに応答して、データベース構成データをネットワーク管理組織データストアへ/ネットワーク管理組織データストアから読み込むこと、および書き込むことに関与することができる。多くの実施形態において、ウェブサービス層および/またはAPIサービス層は、ただ1つの外部に可視的な構成要素になるか、あるいは制御サービスの顧客に対して可視的、かつ制御サービスの顧客によってアクセス可能であるただ1つの構成要素となるであろう。ウェブサービス層のサーバは、処理状態を把握しなくなり得、当技術分野において知られるように水平方向に拡大縮小することができる。APIサーバおよび永続的なデータストアは、地理的な領域内または地理的な位置の近くにある複数のデータセンタにわたって広がることができ、例えば、サーバは、単一のデータセンタ故障に対する回復力に富むようになる。
この実施形態における制御プレーンは、「スイーパ」構成要素214として本明細書に称されることを含む。スイーパ構成要素は、制御プレーンの様々な構成要素をポーリングするか、またはそうでなければ未処理の要求に応答して実行される任意のタスクを判定するよう操作可能な、あらゆる適切な構成要素であってもよい。この例において、ウェブサービス層は、ネットワーク管理組織データストア222内の「データベース作成」要求のための命令もしくは情報、または類似するジョブ待ち行列を配置してもよく、スイーパは、未処理のジョブのためのネットワーク管理組織データストアを定期的にチェックすることができる。様々な他のアプローチは、ジョブが存在という通知をスイーパへ送信するウェブサービス層のように、当業者に明らかになるよう使用することができる。スイーパ構成要素は、「データベース作成」要求を拾得し、その要求のための情報を使用することによって、要求のための少なくとも1つのワークフローのインスタンスを生成するよう操作可能であるワークフロー構成要素216に対し、要求、コール、または他のそのようなコマンドを送信することができる。一実施形態におけるワークフローは、本明細書の他の箇所で説明されるワークフローサービスを使用して、生成および維持される。ワークフローは、一般的にはタスクのシーケンスであり、特定のジョブを行うよう実行されるべきである。ワークフローは、実際の動作ではないが、情報の流れおよび動作の実行を制御する動作の抽象である。ワークフローはまた、実行の間のどの時点においてもプロセスの状態を管理し返却し得る状態機械と考えることができる。一実施形態におけるワークフロー構成要素(または構成要素のシステム)は、格納場所の作成、変更、および削除;復旧およびバックアップ;セキュリティグループの作成、削除、および変更;ユーザ認証情報管理;ならびに鍵ローテーションおよび認証情報管理等のタスクのためのワークフローのホスティングおよび実行を、管理および/または実行するよう操作可能である。そのようなワークフローは、本明細書の他の箇所に説明されるワークフローサービスの上部に実装することができる。ワークフロー構成要素はまた、根本的なワークフローサービスが変化する必要がないため、MySQLのような異なるデータベースエンジンに使用されるワークフローステップ間の差異を管理することもできる。
この例において、ワークフローは、データベースを作成し、最初の要求から抽出された情報を適用するために、ワークフローテンプレートを使用してインスタンスを生成することができる。例えば、要求が、Oracle(登録商標)のRDBMSまたは他のそのようなインスタンスとは対照的に、MySQL(登録商標)の関係データベース管理システム(RDBMS)のインスタンスのためのものである場合、特定のタスクは、ワークフローに追加され、MySQLインスタンスに向けられる。ワークフロー構成要素はまた、要求された記憶量、いずれの特定のハードウェア要件、または他のそのようなタスクに関連する特定のタスクを選択することもできる。これらのタスクは、全般的なジョブに有用である実行の順でワークフローに追加することができる。いくつかのタスクは、並行して実行することができるが、前のタスクに依存する他のタスクは、最初に完了される。ワークフロー構成要素またはサービスは、ワークフロー内のこの情報を含むことができ、必要に応じてそのタスクは実行され、その情報は渡され得る。
顧客のための「データベース作成」ワークフローの例は、データストアインスタンスをプロビジョニングすること、オフインスタンス永続記憶装置のボリュームを割り当てること、データストアインスタンスへ永続記憶装置ボリュームを付けること、次いでDNSアドレス、あるいは顧客がデータインスタンスへアクセスするか、または別の方法で接続するために使用することができる他のアドレス、ポート、インターフェース、もしくは識別子を割り当てること、ならびにそれらを付けること等のタスクを含んでもよい。この例において、ユーザは、インスタンスにアクセスするために使用される、DNSアドレスおよびポートアドレスを提供される。ワークフローはまた、特定のデータ記憶技術(例えば、MySQL)に使用される、あらゆるバイナリまたは他の情報をダウンロードおよびインストールするタスクを含むことができる。ワークフロー構成要素は、これらのタスクおよびあらゆる関連するタスク、またはそのようなタスクのその他適切な組み合わせの実行を管理することができ、実際にデータプレーン210内のデータストアインスタンスに対応する「データベース作成」要求に応答して、「データベース」の作成を示す要求に対する応答を生成することができ、インスタンスにアクセスするために使用されるDNSアドレスを提供する。次いで、ユーザは、DNSアドレスおよびポートを直接使用して、アクセスまたは制御プレーン208を通過する必要なしに、データストアインスタンスにアクセスすることができる。様々な他のワークフローテンプレートは、ストレージを増やす等のためのさらなるデータストアインスタンスのうちの1つを削除、作成、または修正するような同様のジョブを実行するために使用することができる。いくつかの実施形態において、ワークフロー情報は、ストレージへ書き込まれ、少なくとも1つの別個の実行構成要素(示されない)は、ワークフロー情報に基づいて実行されるタスクを引き出すか、あるいはそうでなければ、タスクにアクセスするか、またはタスクを受信する。例えば、プロビジョニングタスクを実行する専用プロビジョニング構成要素があってもよく、この構成要素は、ワークフロー構成要素によってコールされなくてもよいが、タスク待ち行列を監視することができるか、あるいは明らかであるべき多数の関連する手段のいずれかで、プロビジョニングタスクのための情報を受信することができる。
上述のように、様々な実施形態は、格納場所のプロビジョニング等のプロセスもしくはタスクにおける、現在の状態の要求またはコールを受信することができるワークフローサービスを活用することができ、プロセスの現在の状態を返却することができる。ワークフロー構成要素および/またはワークフローサービスは、各タスクを実行するための実際のコールもしくは要求を作成しないが、それらは、代わりに制御プレーンの構成要素が実行される次のタスクを決定することを可能にするワークフローのための状態および設定情報を管理し、そのタスクに必要なあらゆる情報は、次いでその状態情報を含むデータプレーンに適切なコール(1つまたは複数)を生成し、それによって、データプレーンの構成要素は、タスクを実行するコールを作成することができる。ワークフローおよびタスクは、スループットを上げ、リソースの処理を最大化するために、並行して予定を決めることができる。記載されるように、タスクの実際の実行は、データプレーン内で起こるであろうが、そのタスクは、制御プレーンから由来するであろう。例えば、ワークフロー構成要素は、コールをデータストアにすることができるホストマネージャと通信することができる。したがって、与えられたタスクに対し、コールは、特定のパラメータを渡すワークフローサービスに作成することができ、それによってワークフローサービスは、現在の状態のためのタスクが実行され得るように、ワークフローのためのタスクのシーケンスを生成し、現在の状態を提供する。タスクが実行された(あるいはそうでなければ、決断された、または結論を出された)後、ホストマネージャ等の構成要素は、ワークフロー内の次の状態についての情報を次いで提供することができるサービスへ応答することができ、次のタスクが実行され得るようになる。ワークフローのためのタスクのうちの1つが実行される毎に、そのサービスは、ワークフローが完了されるまで実行する新しいタスクを提供することができる。さらに、複数のスレッドは、異なるワークフローに対して並行して動作することができ、ワークフローの処理を加速させることができる。
この実施形態における制御プレーン208はまた、少なくとも1つの監視構成要素218を含む。データインスタンスがデータプレーン内に作成される際、そのインスタンスのための情報は、監視データストア220等の制御プレーン内のデータストアに書き込むことができる。監視データストアは、別個のデータストアであり得るか、またはネットワーク管理組織(Admin)データストア222内のテーブルのはっきりと異なるセット(distinct set)等の別のデータストアの一部分、もしくは他の適切な格納場所であり得ることを理解されたい。監視構成要素は、データプレーン210内のアクティブインスタンス234を判定する監視データストア内の情報にアクセスすることができる。監視構成要素はまた、ウェブサービス層、ワークフロー構成要素、スイーパ構成要素、および様々なホストマネージャ等の制御プレーンおよび/またはデータプレーンの複数の構成要素から、ログおよび/またはイベント情報を収集するような他のタスクを実行することもできる。そのようなイベント情報を使用して、監視構成要素は、顧客対応APIを実装する等の目的のために、顧客可視イベントを映すことができる。監視構成要素は、制御プレーンのために全ての動作している収納場所および/またはインスタンスの健康状態を絶えず監視し、これらのインスタンスのいずれかの故障を検出し、適切な復旧プロセス(1つまたは複数)を開始することができる。
データプレーン内の各インスタンス234は、データストアへのアクセスを提供するする機械のために、少なくとも1つのデータストア226およびホストマネージャ構成要素228を含むことができる。一実施形態におけるホストマネージャは、ソフトウェア開発およびデータストア操作等のタスクを管理するようプログラム化された、インスタンスおよび/またはTomcatもしくはJava(登録商標)アプリケーションサーバ等のアプリケーションサーバ上で実行し、同様にデータストアおよび/またはそれぞれのインスタンスの状態を監視するアプリケーションまたはソフトウェアエージェントである。一実施形態におけるホストマネージャは、内部システム構成要素からのみ到達され得るポート上で確認し、顧客または他の外部の実体に対し利用可能ではない。いくつかの実施形態において、ホストマネージャは、いかなるコールも制御プレーン層へ伝えることができない。ホストマネージャは、新しい格納場所のためのインスタンスをセットアップする等のタスクを管理および/または実行すること、論理的なボリュームおよびファイルシステムのセットアップを含むこと、データベースバイナリおよびシードをインストールすること、ならびに格納場所を始動するか、または終了することに関与することができる。ホストマネージャは、データストアの健康状態を監視することができ、同様にI/Oエラーまたはデータ記憶エラー等のエラー状態のためにデータストアを監視し、必要であればデータストアを再始動することができる。ホストマネージャはまた、データストアおよび/またはオペレーティングシステムのためのソフトウェアパッチおよびアップグレード版のインストールを、実行および/または管理する。ホストマネージャはまた、CPU、メモリ、およびI/Oの使用に関係する可能性がある関連メトリクスを収集することもできる。
監視構成要素は、各ホストのステータスを判定するために、特定の要求を送信することによって、あるいはホストマネージャからハートビートを監視することによるように監視されたインスタンス234に対し、各ホストマネージャ228と定期的に通信することができる。一実施形態において、監視構成要素は、特定のホストおよび/またはインスタンスのステータスを得るため等の各ホストマネージャへコマンドを発行するよう構成されたイベントプロセッサ(または監視サーバ)の1セットを含む。応答が指定回数の再施行の後に受信されない場合、監視構成要素は、問題があると判定することができ、ネットワーク管理組織(Admin)データストア222または別のそのようなジョブ待ち行列内へ情報を記憶し、問題を検証し、必要であればそのインスタンスを再プロビジョニングするため等のインスタンスのための動作を実行することができる。スイーパは、この情報にアクセスし、故障から自動的に復旧するように試みるよう、そのインスタンスのための復旧ワークフローを始動することができる。ホストマネージャ228は、監視するためのプロキシおよび制御プレーンの他の構成要素として動作することができ、制御プレーン構成要素の代わりとして、そのインスタンスのためのタスクを実行する。しばしば、対応するホスト、インスタンス、またはボリュームがクラッシュすること、再起動すること、再始動すること等のような、インスタンスのうちの1つに関連する問題が起こり、それらは自動的に解決することができない。一実施形態において、ロギング構成要素(示されない)があり、これらおよび他の顧客可視性イベントのログを記録することができる。ロギング構成要素は、インスタンスが一定の期間利用できない場合、顧客がそのイベントに関して情報を得るために適切な「イベント」または類似するAPIをコールすることができるように、APIまたは他のそのようなインターフェースを含むことができる。ある場合に、要求は、インスタンスが故障した際、未処理のまま残されてもよい。この実施形態における制御プレーンがデータプレーンから分離されるため、制御プレーンがデータ要求を受信することはなく、したがって、後続の投入の要求を、待ち行列に入れることはできない(ただし、いくつかの実施形態において、この情報は制御プレーンへ転送することができる)。したがって、この実施形態における制御プレーンは、故障に関してユーザへ情報を提供するため、ユーザは、必要に応じてその要求を処理することができる。
記載されるように、インスタンスがプロビジョニングされ、ユーザがDNSアドレスまたは他のアドレスもしくは位置を提供された時点において、そのユーザは、Javaデータベース接続性(Java Database Connectivity)(JDBC)または他のそのようなクライアントを使用して、データプレーン210へ、ネットワークを介して「直接的に」要求を送信し、インスタンス234と直接情報をやり取りするこができる。一実施形態において、データプレーンは、コンピューティングクラウド環境の形態をとるか(または、少なくともそれを含むか、もしくはその一部である)、あるいはデータ記憶および「クラウド」にわたるアクセス、またはハードウェアおよび/またはソフトウェア構成要素の動的なネットワークを提供するウェブサービスおよびリソースの1セットである。DNSアドレスは、そのような動的なクラウド環境内において有益であり、それは、インスタンスまたは利用可能性の故障として、例えば、DNSアドレスを使用に適している任意の置換インスタンスへプログラムで再マップすることにより、マスクされ得る。ユーザ202またはアプリケーション204から受信した要求は、例えば、ネットワークアドレス変換(NAT)ルータ224、または要求を実際のインスタンス234もしくはその要求のDNSに対応するホストへ向けることができる他の適切な構成要素に向けることができる。記載されるように、そのようなアプローチは、ユーザまたはアプリケーションがインスタンスにアクセスするために使用されるDNSまたは他のアドレスを変更することを要求することなしに、インスタンスが動的に移動、更新、複製されること等を可能にさせる。記載されるように、各インスタンス234は、ホストマネージャ228およびデータストア226を含むことができ、永続記憶装置230内の少なくとも1つのバックアップインスタンスまたはコピーを有することができる。そのようなアプローチを使用して、インスタンスが制御プレーンを介して構成された時点で、ユーザ、アプリケーション、サービス、または構成要素は、データプレーンに対する要求を直接通じて、制御プレーン232にアクセスする必要なしに、インスタンスと情報をやり取りすることができる。例えば、ユーザは、構造化問い合わせ言語(SQL)またはインスタンス内のデータに関連する他のそのようなコマンドを、DNSアドレスを介して、直接発行することができる。ユーザがインスタンスの記憶容量を拡大する等のタスクを実行したい場合、ユーザは、制御プレーンにさえアクセスすればよい。少なくとも一実施形態において、制御プレーン208の機能性は、少なくとも1つのサービスとして、プロバイダによって提示することができ、データプレーン210のプロバイダに関連してもよく、あるいは関連しなくてもよいが、単にデータプレーン内のデータインスタンスをプロビジョニングし管理するために使用することができるサードパーティーサービスであってもよく、さらに別個のデータプレーン210内におけるそれらのインスタンスの利用可能性を監視し、確実にすることができる。
記載されるように、ウェブサービスまたは他のそのようなサービスとして制御プレーンの機能性を提示する1つの利点は、制御プレーンが仮想データベース管理者(DBA)として機能し、人間のDBAがデータをプロビジョニングする等のタスクを実行する必要性を回避することである。データをプロビジョニングすることは、現在、単調な手作業であり、DBAが必要な設定情報を受け取ることを必要とし、構成が有効であるかどうかを判定し、インスタンスを最適化および整調し、相当量の時間および労力をとる他の同様のタスクを実行する。さらに、そのようなアプローチは、エラーとなる多くの機会をもたらし、データが失われる後になるまで発見されない可能性がある。本明細書に記載される制御プレーンまたはサービスを使用して、ユーザまたは顧客は、ハードウェアの種類およびデータベース製品のバージョン等の情報を含むコールを、代わりに投入することができる。次いで、制御プレーンまたはサービスは、データストアまたはデータ記憶インスタンスを作成、削除、修正、拡大、あるいはそうでなければ修正するために必要なタスクを実行する。制御プレーンはまた、DBAに各エンジンにおける専門家になることを要求することなしに、一貫した方法で複数の異なるデータベースエンジンをサポートすることもできる。プロビジョニングされた時点で、ユーザは、データインスタンス(1つまたは複数)へのネイティブアクセスを有し、既存のアプリケーション(MySQLアプリケーション等)がDNSアドレスまたは特定のインスタンスのための他の位置情報を単に指すことができる。クエリモデルの制約もしくは変更または他のそのような機能性はないため、ユーザは、MySQL、Oracle、または他のデータベース技術に基づいて作られたアプリケーションを使用し続けることができる。
図3は、一実施形態に従って、単一または複製のどちらか一方で、監視およびRDSインスタンスのオートメーション化された復旧等の目的に使用され得る構成300の例を図示する。参照番号が、単純かつ明瞭にする目的のために図と図の間で繰り返されるが、これらはただ単に類似する構成要素を表し、様々な実施形態に使用することができ、様々な他の実施形態からの構成要素を必要とするか、あるいはただ単に単一の実施形態の異なる見方を示すものであるように解釈されるべきではないことを理解されたい。さらに、少数または追加的な構成要素は、様々な実施形態において使用され得、規定の図中における構成要素の存在または欠如は、その他に具体的に記載されない限り、構成要素が与えられた実施形態において必要とされるか、あるいは有用ではないと解釈されるべきではない。実施形態と図との間の変形は、本開示を踏まえて当業者に明らかであるべきである。
図に図示されるように、制御プレーンの監視構成要素(またはサービス)218は、一連の処理ノード302を備えることができ、本明細書にイベントプロセッサと称される。一実施形態において、イベントプロセッサは、データプレーンの態様を監視するよう操作可能である監視サーバのフリートを備える。各イベントプロセッサは、関連付けられたホストマネージャ228を介して、特定されるセットまたは範囲のデータストア226および/またはデータインスタンス234と通信するよう構成することができる。記載されるように、各データストアおよびホストマネージャは、データプレーン210のノードもしくは機械またはデータ環境上に存在することができる。イベントプロセッサのそれぞれは、任意の適切な通信技法を使用して、割り当てられたホストマネージャと通信し、「ステータス取得(getStatus)」要求等の安全な(例えば、HTTPS)要求を使用して各ホストマネージャへピングを打つこと等によって、各ホストから現在のステータスを取得することができる。その要求に応答して、各ホストマネージャは、ホストマネージャ228に関連する問題があるか、またはホストマネージャ228によって検出されたかどうか等の情報、およびあらゆる関連のあるメトリクス、パラメータ値、または関連すると判定するその診断に関する情報を含む応答を送信することができる。特定の実施形態において、ホストマネージャにより返却される情報の量および種類は、ホストマネージャの状態に基づいて変形することができる。例えば、検出されたエラーがない場合、ホストマネージャは、ログを記憶されるか、またはそうでなければ処理される特定されたメトリクスの標準セットを送信してもよい。問題が検出された場合、例えば、情報の異なるセットは、問題の種類を示す情報、および問題の種類に関連する診断または他の情報等が含まれてもよい。様々なアルゴリズムは、そのような判定をするために、ホストマネージャへ提供することができる。ホストマネージャから情報を受信すると、イベントプロセッサは、必要に応じてその情報を分析し、その情報を監視データストア220または他のそのような位置内に記憶することができる。イベントプロセッサはまた、本明細書の他の箇所に説明されるあらゆるログ情報を監視データストア内に記憶することもできる。この例に図示されるように、監視データストア220は、単一の論理的なデータストアになり得るが、多くのデータインスタンス304にわたって分割することができる。
監視構成要素218の一部として複数のイベントプロセッサ302を使用することは、多くの利点となることができる。そのような一利点は、データプレーン内の多数のデータインスタンス234に対し、単一のイベントプロセッサが、各インスタンスを同時に監視するために十分な容量を有しなくてもよいことである。複数のイベントプロセッサを利用することは、監視動作が複数のイベントプロセッサにわたって分散されることを可能にする。さらに、複数のイベントプロセッサを使用することは、既存のイベントプロセッサに故障または他のそのような問題の場合に、別のイベントプロセッサの動作を引き受けさせることを可能にする。データインスタンスが単一のイベントプロセッサによってのみ管理され、イベントプロセッサを利用できなくするプロセッサに関する問題が存在する場合、データインスタンスは、実行されたいかなる監視も有しない場合があり、したがって停電または他のそのような問題の危険を冒す可能性がある。イベントプロセッサの1セットにわたって監視を広げることにより、各イベントプロセッサによる監視の範囲を動的に更新することを可能にし、制御プレーンは、イベントプロセッサのうちの1つ以上の故障の場合でさえも、データプレーン内の各インスタンスが実質的にいつでも監視されることを確実にすることができる。
一実施形態において、各イベントプロセッサの役割は、どんなときでも監視されるインスタンス(複製を含む)の数をとり、イベントプロセッサの数にわたってインスタンスの数を分配することによって決定される。例えば、データプレーン内で監視される25,000個のインスタンスがあり、制御プレーン内で動作している5つのイベントプロセッサがある場合、各イベントプロセッサは、およそ5,000個のデータインスタンスを監視する役割を与えられ得る。各インスタンスが識別子を与えられる場合、例えば、各イベントプロセッサは、識別子の範囲(第1の5,000個の識別子、第2の5,000個の識別子等のような)を与えられ、25,000個のインスタンスのそれぞれのためのマッピング情報を管理しなければならないことよりも、むしろ各イベントプロセッサの役割を調整することを容易にすることができる。図中の例は、そのような例におけるイベントプロセッサのそれぞれの役割の範囲を示す。
1分に1回のような適切な間隔において、各イベントプロセッサ302は、イベントプロセッサによって監視されている各ホストマネージャ228へ要求を送信することができる。一実施形態におけるイベントプロセッサは、制御プレーンのTomcatコンテナ内で動作しているJavaアプリケーションであり、データプレーン内のデータインスタンスのために、ホストマネージャへ定期的にポーリングを行う。イベントプロセッサは、一実施形態におけるホストマネージャに、DNS名およびホストマネージャポートを使用してステータス取得(getStatus())または類似するコール(例えば、SSL上で)を作成することにより、ポーリングを行うことができる。いくつかの実施形態において、監視されているデータインスタンスは、顧客データストア識別子、データストア識別子、およびインスタンス識別子の組み合わせによって、一意的に識別される。そのようなアプローチを使用して、古いおよび新しいインスタンスの状態は、データインスタンスをクラウド内の別のインスタンスへ移動する際に、識別することができる。イベントプロセッサは、データインスタンスの状態を、ホストマネージャからの応答に基づいて、判定することができる。一実施形態におけるデータインスタンスは、少なくとも次の状態例:「OK」(データインスタンスが適正に動作している)、「隔離された」(データインスタンスが故障の疑わしい状態にある)、または「停止」(データインスタンスが到達不可能でありステータスの要求に応答しない)のうちの1つであり得る。
ほとんどの場合、ホストマネージャは、そのホストマネージャ、関連付けられたインスタンス等が予想通りに動作していることを示す応答を返却し、イベントプロセッサは、監視データストア220内の情報を更新することができる。イベントプロセッサは、「OK」、またはホストマネージャがHTTP応答コード「200」(成功したHTTP要求の標準応答コード)等の適切な応答を返却する際の一実施形態における類似する状態にあるデータインスタンスを考慮することができる。応答がホストマネージャから受信されない場合、または応答がタイムアウト応答(HTTPコード「500」、またはいずれの他の「5xx」エラー応答コード等)である場合、イベントプロセッサは、ステータス取得(getStatus)要求を再送信することができ、データベースインスタンスを「隔離された」または類似する状態に置くことができる。ホストが所定数のステータスピングまたは他のそのような要求にわたって「隔離された」状態にある場合、データインスタンスは、「停止」または類似する状態に宣言され得る。ホストが所定数のステータスピング内で「200」応答(または類似する)コードとともにオンラインに戻る場合、ホストまたはインスタンスは、「OK」状態に移動され得る。ホスト状態を「隔離された」から、少なくとも部分的に使用される「停止」または「OK」へ移動する前の所定回数のチェックは、間欠的なネットワークエラー、一時的に過負荷状態のイベントプロセッサ、一時的に過負荷状態のホストマネージャ、または他のそのような一時的なエラーに起因する誤検出を回避するためのものであり、実際には他の利用できなくなっているデータインスタンスをもたらさず、さもなければ復旧を要求する。一実施形態において、その状態が別のイベントプロセッサによって容易に判定され得るため、「隔離された」状態は、存続されない。
応答が所定回数のステータス要求の後に受信されない場合、または本明細書の他の箇所に記載されるように状態が「停止」または類似する状態へ別の方法で移動される場合、イベントプロセッサは、無反応なホストマネージャに関して疑わしい状態があることを示すネットワーク管理組織(Admin)データストア222(または、上述の他のそのようなジョブ待ち行列)へ問題状態に関する情報を入れる。上述のように、制御プレーンのスイーパ214構成要素は、情報についてネットワーク管理組織(Admin)データストアを定期的にチェックすることができ、スイーパが疑わしいまたは問題状態の情報を検出する際、適切な復旧ワークフローは、始動され得る。例えば、スイーパは、利用できない状態のデータインスタンスを処理するワークフロー、ホストマネージャによって報告されるエラーを処理するワークフロー、または多数の他のそのような状況のいずれか等の適切なワークフローを生成させるワークフロー構成要素216へ情報を渡す。ワークフローマネージャは、適切なワークフローを生成し、状態情報を渡し、本明細書の他の箇所に記載されるように様々な他の態様を取り扱うことができる。
ネットワーク管理組織(Admin)データストア内に復旧情報を記憶する一利点は、そのようなアプローチが監視システムの故障の場合においてさえも復旧を可能にすることである。それは、監視データストアの利用可能性から独立している復旧動作を可能にするよう望まれ得る。それは、この実施形態において、ワークフロー等の生成を含むどのような種類の復旧もアクティブかつ利用可能になるネットワーク管理組織(Admin)データストア(または、他のそのようなジョブ待ち行列)を要求するため、ネットワーク管理組織(Admin)データストアを使用するよう許容可能になり得る。それは、したがって、復旧上の別の依存関係に位置することを避けるよう望まれ得、代わりに可能性の単一の位置付けを有する。
様々な実施形態に従うシステムおよび方法は、顧客がウェブサービス、または類似するそのようなアプローチを利用すること、ならびに作成クラウドコンピューティングまたは類似する環境内の1つ以上の複製データベースインスタンスを作成することを可能にし、その結果として高い耐久性がありかつ高い利用可能なデータソリューションを提示する。様々な実施形態において、顧客が複製データベースインスタンスを作成する際、顧客データは、一次/二次複製モデルを使用して、同期的に複製される。いくつかの実施形態において、複製は、異なるデータゾーン内等の異なる物理位置に配置され得る。各データ「ゾーン」は、1つ以上のデータセンタ、またはデータサーバのグループを指すことができ、例えば、異なる地理的な位置またはその周辺に配置されている異なるゾーンとともに、特定の地理的な領域内に配置される。次いで、RDSインスタンスは、異なる地理的な位置における別のデータゾーンが、大きな壊滅的なイベントの場合を除いて故障を回避することができるであろうために、データゾーンのうちの1つの故障に耐えることができる。ある場合には、データセンタは、複数のデータゾーンに及ぶことがあるが、与えられたデータセンタ内のデータ複製は、異なるゾーン内にインスタンスを生成され得る。多くの他の変形は、重複ゾーン、複数の地理的な位置におけるゾーン等のように可能である。一次複製が故障するか、またはそうでなければ利用できなくなる場合、RDSシステムは、二次複製へ迅速かつ自動的にフェイルオーバーすることができ、非常に小さな故障時間または非常に小さなデータ欠損をもたらす。
一実施形態において、顧客は、図2について記載されるような制御プレーンのウェブサービス層における特定されるインターフェースをコールすることにより、複製データベースインスタンスを作成することができる。例えば、顧客は、インスタンスクラス、割り当てられたストレージ、データベースエンジン等のような態様を特定する「CreateDBInstance」APIをコールすることができ、同様に顧客は、非複製データインスタンスを作成できる。複製されたインスタンスの作成の際、顧客は、「複製された」または類似するパラメータ等の少なくとも1つの追加的なパラメータを、「真(true)」または作成されたインスタンスが複製されるべきであることを示すその他の適切な値に設定された値とともに、含むことができる。いくつかの実施形態において、値は、初期設定により「偽(false)」に設定され、顧客によって特定されない限り、非複製インスタンスが作成されるようにする。いくつかの実施形態において、特定の顧客のみが、一定レベルのサービス等の代金を支払う顧客のような複製されたインスタンスを作成する能力を有する。
いくつかの実施形態において、顧客はまた、二次複製が、一次複製よりむしろ異なるデータゾーン内に作成されるかどうかを選択することもできる。顧客はまた、いくつかの実施形態において、インスタンスのための1つ以上の特定のデータゾーン、または順序付けられたリストを選択することを可能にされ得、例えば、その一方で他の実施形態において、顧客が少なくとも一次複製のためのデータゾーンを選択できない場合がある。顧客が2つのデータゾーンを特定し、データゾーンのうちの1つが長時間利用できなくなる場合、例えば、いくつかの実施形態における耐久性必要条件は、第3のデータゾーン等内に生成させる別の複製を引き起こす。これは、複数の顧客のために管理およびデータゾーンリストの順序の更新を要求することができ、いかなる有意義な利益も提示することなく、ユーザ経験を複雑にすることがある。さらに、それはデータゾーンにわたって関連付けられるアプリケーションフリートを広げるアプリケーションにとって容易になることができ、二次複製として同一データゾーンに位置するいくつかのアプリケーションフリートがあり得るようにする。
いくつかの実施形態において、顧客は、複製されたデータインスタンスのための「ディスクライブDBインスタンス(DescribeDBInstance)」または類似するAPIをコールすることができ、それによってRDSは、一次複製の終点DNS名および一次複製が現在配置されているデータゾーン等の情報のリストを作ることができる。顧客は、単一のデータゾーンに使用される従来のアプローチを使用して依然RDSインスタンスと通信することができ、RDSインスタンスのステータスが「利用可能」になるとすぐに、顧客はデータストアの終点DNS名を受信することができるため、例えば、終点DNS名を使用してインスタンスへ接続する。複製に故障が発生した場合、RDSは、データベースを対応する二次複製へフェイルオーバーすることができ、終点DNS名は、新しい一次複製対して別名を付けることができる。データベース終点DNS名は、多くの実施形態において持続性を留め、複製されたインスタンスの寿命の間、変化しない。
いくつかの実施形態において顧客は、「修正DBインスタンス(ModifyDBInstance)」または類似するAPIを「真(true)」に設定された複製されたパラメータとともにコールすること等によって、非複製インスタンスを複製されたインスタンスへ変質させる能力が提供され得る。これは、データベースを適切な時期において、次の保全ウィンドウの間、またはその要求の直後等で複製されたインスタンスに変換させることができ、APIコールパラメータ等に依存してもよい。
様々な実施形態は、サーバ間のブロックデバイスのコンテンツを、ミラーするシェアーナッシングかつ複製されたストレージソリューションを実装するカーネルモジュール等のブロックレベル複製機構を活用する。BLRMは、ブロックデバイス(すなわち、ハードディスクまたは論理的なボリューム)の上部で動作する。それは、一次スレーブ複製アーキテクチャを使用し、そこで一次複製は全ての更新を根底にあるブロックデバイスへ向ける。ブロックデバイスへの全ての入力および出力(I/O)要求は、自動的かつ同期的に複製されている全ての書き込み操作とともに、BLRMカーネルモジュールによって妨害される。BLRMは、ピアデバイスの特有の故障検出を提供し、ピアノードが到達不可能である際、適切な復旧ハンドラを起動する。BLRMはまた、一時的に利用できないノードを、一次複製におけるデータアクセスを妨げることなく、バックグラウンドでデータの最新バージョンへ、自動的に再同期することもできる。BLRMは、複製されたデータの世代を識別する世代識別子(「GI」)を使用し、それによってBLRMは、2つのノードが同一の複製ペアのメンバであるかどうか、バックグラウンド再同期(必要であれば)の方向であるかどうか、ならびに部分的なまたは完全な再同期は必要とされるかどうか等の態様を判定することができる。BLRMドライバは、切断された予備複製が一次複製に切り替わる際、あるいは一次の役割におけるリソースが二次複製から切断される際、複製ペアの初期化の間等の任意の適切な時期において、新しい世代を始動することができる。ブロックレベル複製機構が説明の目的のために例として本明細書に使用されるが、その他の適切なブロックレベル技術または機構は、様々な実施形態の範囲内で使用することができることを理解されたい。
記載されるように、様々な実施形態におけるRDSデータインスタンスは、1つ以上のシステムまたはプラットフォームに基づいて作られ得る。例えば、インスタンスは、仮想コンピューティング環境に基づいて作られ得、それは様々なオペレーティングシステムとともにインスタンスを立ち上げ、それらのインスタンスを管理するために、顧客がウェブサービスまたは別の適切なアプローチを利用することを可能にする。仮想コンピューティング環境のようなものを提供するウェブサービスの例は、Amazon.com,Inc.によって提示されるエラスティックコンピュートクラウド(Elastic Compute Cloud)(EC2)サービスである。データインスタンスはまた、ブロックレベルストレージ機構に基づいて作られ得、それはインスタンスの寿命とは無関係に存続するオフインスタンスストレージを提供することができる。ブロック記憶機構は、インスタンスに付けられ、インスタンス内にデバイスとして映され得るストレージボリュームを提供することができる。ブロック記憶プラットフォームの例は、同時係属中の2008年8月8日に出願された「Managing Access of Multiple Executing Programs to a Non-Local Block Data Storage」と題される米国特許出願第12/188,949号に提供され、本明細書に参照として組み込まれる。論理的なボリューム(例えば、LVM層)は、ブロック記憶ボリュームおよび顧客データベースがLVM/ファイルシステム層の上層で動作することができるような適切なファイルシステムの上部に作られ得る。一実施形態における複製データベースに対して、BLRMは、LVM層の上層で動作することができる。そのような実施形態等におけるBLRMは、全てのI/O要求を妨害し、それらの要求を、複数のブロック記憶ボリュームにわたって要求を順に分割することができる論理的なボリュームへ送信するであろう。論理的なボリュームの使用は、複数のブロックストレージEボリュームを処理する能力、ならびにストレージ等を容易に拡大する能力を提供することができる。LVMの上層にBLRMを階層化することは、書き込み操作が複製にわたって複製されることも可能にすることができる。
図4は、複製されたRDSインスタンスを提供するために、一次/二次複製モデルを実装するための機構400の例を図示する。この例において、一次複製410および二次複製412は、データプレーン408またはデータベース環境の異なるデータゾーン(1および2)内に位置する。各複製は、各複製のためのブロック記憶420、422に対するI/Oを管理するためのBLRM層418、422として、ここで図示されるブロックストレージ機構の上部に作られる。図2と関連して説明されるものと類似するような、制御プレーン406の構成要素は、例えば、必要なセットアップ操作を実行することができるローカルホストマネージャ414、416に対して、構成コマンドを発行することによって、複製されたRDSインスタンスを作成することができる。図に見られるように、BLRM418、422等のブロックレベル機構は、全てのI/O要求をブロックデバイスレベルで妨害し、ローカルディスクおよび遠隔ディスク420、424へ、その要求の情報を書き込むように位置される。この例において、データベース426(例えば、SQL)は、一次複製410でのみ実行され、全てのクライアント402は、一次複製410上で(適切なネットワーク404を経由して)それらのデータベーストランザクションを実行する。データベース426は、二次複製412上では実行されず、ファイルシステムはまた、データベースが一般的には基礎的なデバイス内の更新を認識しないため、二次複製上でマウントされない可能性もある。
各データベースクライアント402は、一次複製410のホスト名に別名を付けることができるRDSデータベースのDNS終了時点の名称を使用して、現在の一次複製を自動的に発見することができる。現在の一次複製を発見するためにDNSを使用することによって、互換性を、例えば生来のMySQLクライアント、JDBC、PHP、C#、およびHaskell等の既存のデータベースクライアントに維持することができる。DNSキャッシングが、クライアントに古い一次複製に接続するよう試みさせる可能性があるが、二次複製内で実行されるデータベースがないため、クライアントは二次複製に接続することによって、データベースに通信することができなくなる。顧客は、次いで、適切なDNS情報を取得することを、知ることができる。
上述のように、データベース複製は、同一または異なるデータゾーン内で動作している複数の基礎的なデータインスタンスにわたってサポートすることができる。書き込み操作が、同期的なアプローチを使用して行われると、複数のデータゾーンの故障等のために全ての複製が利用できないという極めてまれな事例を除き、データが失われることはない。そのようなアプローチは、単一の複製の故障がデータベースに長時間の停電をもたらさないため、単一のデータベースインスタンスよりも高い利用可能性を提供することができる。例えば、データベースの一次複製が停止している場合、多数の事例において、システムは、二次複製に対してフェイルオーバー操作を実行することができる。さらに、そのようなアプローチは、非複製のデータベースよりも高い耐久性を提供することができ、データゾーンの故障または単一のブロック記憶ボリューム故障等の故障から保護することができる。
前に説明したように、RDSは、サーバ間のブロックデバイスのコンテンツをミラーとするためにBLRM等のブロックレベル機構を利用することができる。一次スレーブ複製アーキテクチャは、ブロックデバイスに対する全ての更新を一次が受け入れ、書き込むことを可能にする。ブロックデバイスに対する全てのI/O要求は、BLRMカーネルモジュールによって妨害され、書き込みは同期的に複製されることになる。BLRMは、複製されたデータの世代を識別するために、世代識別子(「GI」)を利用する。BLRMは、この機構を使用し、2つのノードが、誤って接続された2つのノードとは対立するものとして、実際に同一の複製ペアのメンバであるかどうかを判定する。GIはまた、必要であれば、バックグラウンドの再同期の方向を判定し、部分的または完全な再同期が必要であるかどうかを判定するために使用することもできる。少なくとも一実施形態において、GIは、汎用一意識別子であり(UUID)、単調にシーケンス数を増やさない。BLRMドライバは、切断された二次複製が新しい一次複製に切り替えられる際、または一次の役割におけるリソースが二次複製から切断される際等の複製ペアの初期化の間に、新しい世代を始動することができる。
複製ペア(例えば、一次複製Pおよび二次複製S)が初期化され、最初に接続される例において、一次複製Pは、GI1等の新しいGIを生成することができる。一次複製PがSから切断され、劣化モードに移動する場合、Pが同期的な複製なしに全てのI/Oを実行すると、Pは、GI2等の新しいGIを生成することができる。しかしながら、PおよびSがネットワーク分割のために切断される場合においてさえも、Sは新しいGIを生成することはない。この例において、一次複製Pは、そのメタデータ内に新しいGIおよび前のGI(それぞれGI2およびGI1)を保つ。前のGIを記憶する理由の1つは、二次複製の復旧を最適化するためである。例えば、Sが一瞬の間切断される一時的なネットワーク分割が存在する場合がある。その後に、分割が修復し、SがPに再び付けられる際、PはSの現在のGIが前のPのGIであることを認識することができ、Pが2つのデータ世代間で変更されたこれらのブロックのみを輸送することができる。
一次複製の故障が存在する例において、Pが利用できないと検出される場合、Sは新しい一次複製に昇格することができる。コマンドが二次複製を新しい一次複製に昇格させるために発行される際、BLRMは、新しいGIを新しい一次複製(前のS)において生成することができる。したがって、P(もともとの一次複製)がその集団を再度結び付け、Sと通信する際、Pはデータ世代が変化し、PがSからデータを同期しなければならないことを判定することができる。
記載のように、一次複製Pは、全ての書き込みおよび読み込みを受け入れることができ、DNS_一次(DNS_primary)は、一次インスタンスのDNS名に別名を付けるか、またはcnameを付けることができる。二次インスタンスSは、DRDB複製(または類似のブロックレベル複製)プロトコルを介して、全ての更新を一次複製から受信することができる。二次複製内でマウントされるデバイス、または始動されるデータベースはない。フェイルオーバーを可能にする際、利用することができる別の構成要素は、監視構成要素Mである。監視構成要素は、一次および/または二次複製の健康状態を監視することができ、故障が起こる際に適切なフェイルオーバー動作を開始することができる。一実施形態における監視構成要素は、定期的に一次および二次複製にピングを打つか、そうでなければそれらと通信する。この通信は、例えば、T_ハートビート(T_heartbeat)または類似のパラメータによって特定される秒数等の通常の間隔で起こる、ハートビート通信を含むことができる。監視構成要素がPおよびSにピングを打つ場合はいつでも、一実施形態における監視構成要素は、HTTPステータス取得)(getStatus())コマンドを各複製内で動作しているホストマネージャに発行する。PおよびSが、それぞれコールを受信する際、複製は、各複製の現在の状態を判定するために、BLRMまたは類似のステータスコールを実行する。例えば、一次複製Pは、同期(IN_SYNC)、機能停止(STALLED)、劣化(DEGRADED)、停止(DEAD)等のステータスを判定するために、BLRMツールコマンドを実行することができる。
ステータスを報告することに加えて、複製のそれぞれは、メモリ内に世代数を記憶することができる監視構成要素へそれぞれのGIを報告することもできる。新しい監視構成要素がブートストラップする際はいつでも、新しい構成要素は、複製ペアのリストならびに終了ポイントを、強く一貫したデータストア(つまり、監視データベース)から読み込むことができ、メモリ内にその情報を記憶することができる。各ステータスピングの間、監視構成要素は、その数が同一かどうかを判定することができる。何らかの理由でその数が異なる場合、GI値はメモリ内で更新することができる。
一次または二次複製は、少なくとも2つの監視状態のうち1つ内にあり得る。図5は、一実施形態に従って一次複製のための状態遷移図500の例を図示する。複製は、複製が監視構成要素に接続される場合、監視(MONITORED)状態を有することができる。複製は、複製が監視構成要素に接続されない場合、非監視(NOT_MONITORED)または類似の状態にあり得る。一次インスタンスはまた、複数のデータ同期状態のうちの1つでもあり得る。例えば、PおよびSの両方が機能しており、互いに通信することができる場合、Pは同期(IN_SYNC)状態にあることができ、全ての書き込みは、PとSとの間で同期的に書き込まれる。状態図を見ると、一次複製が同期(IN_SYNC)/監視(Monitored)状態にある504において、一次複製は二次複製と通信することができ、全ての書き込みは継続しており、BLRMはハートビートしており、一次は監視されている。一次が監視構成要素から切断されるが依然として二次複製と同期している場合、その状態は、状態502へ移行することができる。状態502において、一次は、二次複製と通信することができ、どちらの複製も接続され、更新されているが、一次は監視構成要素から切断され、したがって、監視されていない。二次複製はまた、二次複製が健全であり、一次複製と連絡を取り合う接続(CONNECTED)状態にあってもよく、二次複製が健全であるが一次複製と連絡を取り合わない場合には切断(DISCONNECTED)状態にあってもよい。したがって、状態502および504において、二次複製は、接続(CONNECTED)状態にある場合があるが、他の状態においては切断(DISCONNECTED)である場合もある。
一次複製は、Pが監視されるがSから切断される、またはSと連絡を取り合わない場合、機能停止(STALLED)状態または類似の状態508を有することができ、全ての書き込みが凍結されるため、いかなるI/O操作も進行することができない。一次複製は、PがSから切断され、非複製モードに切り替えられた場合、劣化(DEGRADED)または類似の状態406を有することができる。これは、Sが停止しているか、そうでなければ到達不可能な場合に、Pが読み込みまたは書き込みに対応し続けることを可能にする。Pは、状態502または508のどちらかから、劣化(DEGRADED)モードに到達することができる。Pは、多くの実施形態において、RDSが典型的に新しい予備複製を作成することになるため、劣化(DEGRADED)モードに長く留まらない場合がある。新しい二次複製がインスタンス生成されると、それは一次複製と完全に同期され、監視構成要素によって監視されており、状態は複製が同期しており(IN_SYNC)監視される(Monitored)状態504へ戻ることができる。
一次複製は、PがSから切断され、非観察(NOT_OBSERVED)状態にあるか、入るかの場合、自滅(SUICIDAL)または類似の状態510にあることができる。この場合、Pの状態は、T_フェイルオーバー(T_failover)秒間等の期間の後、自滅(SUICIDAL)へ変化することができる。この状態510は、いくつかの実施形態において、機能停止(STALLED)状態508からのみ到達することができ、Pが監視構成要素と連絡を取り合わない場合に起こる。この状態において、一次複製は、それ自体をシャットダウンすること、またはデータインスタンスを再動作することによって、「自滅する」。
そのようなプロセスを実行するための監視およびフェイルオーバーアーキテクチャの一部として、各複製データベース(つまり、複製ペア)は、監視構成要素によって監視される。RDSにおいて、単一の監視構成要素は、複数の複製ペアを監視することができる。さらに、システムは、複数または「フリート」の監視ノードを利用することができる。記載されるように、監視構成要素は、複製ペアを毎T_ハートビート(T_heartbeat)秒間等の適切な間隔で継続的にピングを打つことによって、監視データベースの状態を判定することができる。図6は、各監視構成要素Mの観点からの複製データベースの状態遷移図600の例を図示する。一次複製が同期(IN_SYNC)状態にあり、二次が接続されている場合、Mは、データベースを同期(IN_SYNC)または類似の状態604にあると見なすことができる。Mはまた、監視構成要素が、例えばネットワーク分割のために複製のうちの1つと通信できない場合に、データベースを状態604にあると見なすことができるが、複製は接続され同期していることを、他の複製が監視構成要素に示すため、フェイルオーバーイベントを実行する必要が全くない。
Mが、何らかの理由のために、もはや一次および二次複製のどちらとも通信することができない場合、監視構成要素が分割されているか、あるいはどちらの複製も同時に利用できないかのどちらかである。どちらの場合においても、Mは、データベースの状態を分割(Partitioned)状態または類似の状態602に移動していると見なすことができる。これは、一次および二次複製の両方を非監視(NOT_Monitored)状態に置くことができる。監視分割が修復するか、または新しい監視構成要素がデータベースに割り付けられる場合、状態は同期(IN_SYNC)状態604へ戻ることができる。
Mがもはや一次複製と通信することができず、二次複製が一次複製と通信することができない場合、それは切断(Disconnected)状態にあり、監視構成要素はデータベースをS_オンリー(S_ONLY)状態606にあると見なすことができる。T_フェイルオーバー(T_failover)秒間等のある期間内に、監視構成要素が一次複製との通信を再確立することができれば、状態は、同期(IN_SYNC)604に戻ることができる。監視が、少なくともT_フェイルオーバー(T_failover)秒間一次複製と通信することができない場合、監視構成要素は二次複製を新しい一次へ昇格させることができる。二次複製が、現在のGIが一次複製の最新の既知のGIと同一であると確認し、二次複製が昇格要求を確認すれば、新しい二次がインスタンス生成され、新しい一次と完全に同期され、その時に状態が同期(IN_SYNC)604へ戻ることができるまで、状態はP_オンリー(P_ONLY)状態608に移行することができる。
しかしながら、監視構成要素が、二次複製を新しい一次複製に昇格させることを決定するが、二次要求が昇格要求を拒絶する場合、状態は障害(Disaster)または類似の状態610に移行することができる。二次は、二次複製に対する現在のGIが一次複製の最新の既知のものとは異なるために、その要求を拒絶することがある。他の場合において、そうでなければ応答は二次複製から受信されない場合がある。これは、大規模な非可用性が存在する、またはGIもしくはメンバシップ情報が破損している等のまれにしか起こらない場合に起こり得る。
状態が同期(IN_SYNC)604にある別の場合において、監視構成要素は、二次複製と通信する能力を失うことがあり、一次複製もまた、二次複製と通信する能力を失うことがあり、そのため一次複製は機能停止(STALLED)状態になる。この場合、状態監視構成要素は、一次複製が劣化(DEGRADED)状態に移行するよう要求することができ、監視構成要素によって見なされた状態は、P_オンリー(P_ONLY)または類似の状態608に移行することができる。監視構成要素および二次複製と通信することができない一次複製、ならびに劣化(DEGRADED)モードにある一次複製を用いて、新しい二次複製は、インスタンス生成され、一次複製と完全に同期することができ、そこでMによって見なされた状態が同期(IN_SYNC)604へ戻ることができる。
状態遷移図によって見られるように、少なくとも1つの実施形態において、監視構成要素によって実装されたフェイルオーバーアルゴリズムは、監視構成要素に、特定の状況の下で少しの間、新しい一次複製になるよう二次複製を昇格させることができる。この例は、単に図6の状態図を通した1つの経路を表すだけであることを理解されたい。図7は、一実施形態に従って使用することができる二次複製に対するフェイルオーバーのプロセス例700を図示する。この例において、一次および二次複製は、プロビジョニングされ、接続され、同期される702。世代識別子(GI)は、各複製が複製データの現在の世代を識別するように生成される704。監視構成要素は、複製に割り付けられ、定期的に複製にピングを打つ706。複製ペアに割り付けられている監視構成要素は、その複製ペアのための一定期間後には期限切れとなり得る「リース」を取得することができるか、あるいはそれを伴って提供されてもよい。リースは、典型的に、一次複製のためのホストマネージャから受信され、イベントプロセッサリーススキームが一次複製のクラッシュを切り抜けることができるように、イベントプロセッサ識別子およびリース時間は両方の複製において記憶することができる。このようにして、監視構成要素は定期的に複製から解放され、したがって荷重の分散または分割の目的で他のペアに移動させられるか、そうでなければいくつかの他のそのような理由ために操作されることができる。リース期間の終了時、または終了時近くに、監視構成要素は、リースを延長するよう試みることができ、判定は、本明細書の他の場所に記載されるように、リースを延長しないように成される場合がある。監視構成要素が一次複製との連絡を失う場合708、監視構成要素は一定期間再試行するよう試みることができる710。監視構成要素が、任意の時点で一次複製との連絡を取り戻す場合、監視プロセスは継続することができる。監視構成要素がT_フェイルオーバー(T_failover)秒間等の一定期間に一次複製と連絡を取り合わない場合、判定は、二次複製が一次複製と通信することができるかどうか、または二次複製が切断(DISCONNECTED)状態にあるかどうかに関して行われる712。判定は連絡が失われた時点での一次複製の状態が、二次複製と同期(IN_SYNC)状態にあるとして知られていたかどうかに関して行われてもよい714。判定は、様々な実施形態において、別個に、あるいは実質的に同時に成されてもよい。二次複製が、一次複製と通信することができず、複製が同期されていた(例えば、同一のGI値を有していた)場合、監視構成要素は、二次複製を新しい一次複製に昇格させるコマンドを発行することができる716。Pの最終状態が判定され得ない場合、フェイルオーバーは起こらない。監視構成要素は、プロセスまたは機械が再起動されたか、あるいは新しい監視構成要素が引き継がれたかの場合、Pの状態を知らない可能性がある。その場合、状態は劣化(DEGRADED)として扱われてもよい。
二次複製を新しい一次複製へ昇格させる際、監視構成要素は、一次への昇格(promoteToPrimary)(古いGI)等のコマンドを二次複製のためのホストマネージャへ発行することができる。この例において、「古いGI」は、一次複製に対するホストマネージャの最新の既知のGIである。この要求を受信すると、二次複製は、最後にもう一度、一次複製と通信するよう試みることができる。複製が依然として通信できない場合、二次複製は、その現在のGIが(一次複製の)古いGIと同じであることを検証する718。二次複製はまた、要求を発行する、またはステータス要求を送信する監視構成要素が、その複製の有効な監視構成要素であるか、あるいはその複製の現在の「リース保持者」であるリース情報を検証することもできる。その場合、二次複製は、自身を昇格させることができることを確認し、適切なBLRMコマンドを発行することによって新しい一次となる720。二次複製は、一次への昇格(promoteToPrimary())要求に対する応答として新しいGIを監視構成要素へ返却する。その後に、新しい(昇格された)一次複製のホストマネージャは、ファイルシステムをマウントし、データベース(例えば、MySQL)を始動させる722。監視構成要素が無事に二次複製を昇格させ、DNS_一次cnameは、新しい一次複製によって示され724、制御プレーンの監視構成要素または他の構成要素によって実行することができる。その後、インスタンス状態は、二次復旧の必要があるとしてマークすることができる726。
しかしながら、二次複製の現在のGIが古いGIと同一ではない場合、二次複製を新しい一次複製に昇格させるのは安全ではないかもしれない。この場合、昇格プロセスは、中断されてもよく、操作者介入の警報(または別の適切な是正動作)が生じる。操作者がこの問題を解決できない場合、特定の時点への復旧は、データベースを最新のよく知られた時点へ復元することによって実行することができる。
図を見ると、多数の異なる故障事例を判定することができる。例えば、第1の故障事例において、一次および二次複製が動作しており、操作する監視構成要素と通信している。監視構成要素の観点からは、構成要素が、ほとんどのT_監視構成要素(T_monitoring component)秒間内でのように定期的に、各インスタンスと通信することができる限りは、全てが予想通りに動作している。この場合の一次の状態は、「同期(IN_SYNC)/観察(OBSERVED)」である。
監視構成要素と二次複製との間のネットワークリンクが分割されている故障事例においては、しかしながら、一次は二次および監視構成要素と通信することができるかもしれないが、監視構成要素は、二次複製と通信することはできないだろう。一次の観点からは、全ての書き込みは依然として成功しており、そうして一次が依然として同期(IN_SYNC)/観察(OBSERVED)状態にあり、二次復旧は全く開始されないようになる。監視構成要素の観点からは、構成要素は二次故障を検出するが、一次が依然として二次と同期されるために、監視構成要素は実行および操作する必要はなく、ただ複製と通信するよう試みることを続けることができる。
その代わりに、ネットワーク分割に応答する等、監視構成要素が一次構成要素と通信することができない場合、二次複製は、一次複製および監視構成要素と通信できるようになるが、一次複製は監視構成要素から到達不可能となるであろう。一次の観点からは、n×T_ハートビート(T_heartbeat)秒間の後、一次複製が監視構成要素と連絡を取り合っていないため、一次は非観察(NOT_OBSERVED)状態に移動することになるであろう。いくつかの実施形態において、nの値は、2より大きいものに設定されてもよい。一次の状態は、したがって、同期(IN_SYNC)/非観察(NOT_OBSERVED)であってもよい。監視構成要素の観点からは、二次複製のみが到達可能であるが、二次複製は、依然として一次複製と連絡を取り合っているため、監視構成要素はいかなるフェイルオーバーも開始しない。
故障事例の一例において、二次複製は、ノード故障またはネットワーク分割等の要因のために、停止していることがある。図8は、少なくとも1つの実施形態に従って、使用することができる二次復旧を実行するためのプロセス800の例を図示する。この例は、複製が既にプロビジョニングされ、通信しており、同期されている、ならびに、監視構成要素によって監視されていると仮定する802。監視構成要素が二次複製との連絡を失う場合804、監視構成要素は一定期間再試行するよう試みることができる806。監視構成要素が任意の時点で二次複製との連絡を取り戻す場合、プロセスは継続することができる。監視構成要素が、一定期間二次複製と連絡を取り合わない場合、一次複製が二次複製と通信することができるかどうかに関して判定が成される808。一次複製が二次複製と通信することができない場合、一次はT_同期(T_sync)秒間の後、機能停止(STALLED)状態へ入ることができる810。機能停止(STALLED)状態に入った後、一次複製は、監視構成要素から連絡をもらうためにn×T_ハートビート(T_heartbeat)秒間待機することができる。一次複製が、この時間ユニット内に監視構成要素から連絡をもらうと(つまり、一次は監視(MONITORED)状態にある)一次は、劣化(DEGRADED)状態に入り、次のハンドシェイクにおいて監視構成要素に知らせる812。監視構成要素の観点から、状態はP_オンリー(P_ONLY)に入り、監視構成要素は二次複製が到達不可能であることを発見する。これを判定すると、監視構成要素はデータベースインスタンスの状態を二次復旧が必要(NEED_SECONDARY_RECOVERY)等の状態としてマークし、本明細書の他の場所に説明されるような二次複製復旧ワークフローを開始する814。
別の故障事例において、全てのホストが機能し、動作していてもよいが、一次複製は監視構成要素および二次複製から分割されていてもよく、それは例えばデータゾーン分割または不良ラックのアップリンクのためであってもよい。したがって、監視構成要素はまた、二次複製と通信することができるが、監視構成要素も二次複製もどちらも一次複製に到達することはできない。一次複製の観点からは、T_同期(T_sync)時間ユニットの後、一次複製は機能停止(STALLED)状態に入る。機能停止(STALLED)状態に入った後、一次複製は、n×T_ハートビート(T_heartbeat)秒間、監視構成要素から連絡をもらうために待機する。この場合、一次複製は、監視構成要素から連絡をもらわず、二次複製から切断され、それは自滅(SUICIDAL)状態へ移動し、二次複製として戻って来ると、インスタンスを再起動することによって「自滅する」。監視構成要素の観点から、監視構成要素は、S_オンリー(S_ONLY)の状態に到達し、一次構成要素が到達不可能であることを発見する。監視構成要素は、次のハンドシェイクにおいて、二次複製とチェックし、二次複製が一次複製と通信可能かどうかを判定する。この場合、二次複製は、切断(DISCONNECTED)状態にあることを主張するであろう。監視構成要素は、T_フェイルオーバー(T_failover)秒間待機し、次いで一次複製が依然として利用できないことを確認する。そうすると、データベースの前の状態が同期(IN_SYNC)であり、二次複製の現在のGIが一次複製の最新の既知のGIと同一である場合に、監視構成要素は二次複製を新しい一次複製として昇進させる。T_フェイルオーバーの時間値は、n×T_ハートビート(T_heartbeat)+T_バッファ(T_buffer)に設定されてもよく、nは、前の事例においてnが2より大きく設定された、前に記載されたものと同一のパラメータである。T_バッファ(T_buffer)は、一次複製が「自滅する」ために予想される最悪の場合の時間である。
一次が停止しており、他の問題が全くない類似の事例において、フェイルオーバーもまた存在することがある。この場合は、しかしながら、一次複製が停止しており、自滅(SUICIDAL)または他のそのような状態に入らないため、一次はいかなる移行状態も有しない。
別の故障事例において、一次および二次複製は、ネットワークの問題がなく予想通りに機能し、通信しているが、監視構成要素は、停止になるか、そうでなければ利用できなくなる。一次の観点から、全ては依然として同期(IN_SYNC)のデータ同期状態にあるが、一次複製は非観察(NOT_OBSERVED)状態にあることを認識する。
説明したように、制御プレーンは、RDSインスタンスを監視し、必要な際には適切な復旧動作を発行するよう構成された、分散型のイベントプロセッサのセットまたはイベントプロセッシングフリートを含む。各イベントプロセッサは、ハッシュがインスタンス識別子または類似の識別する値に基づいて行われる単純なハッシュベースの分割アルゴリズムを採用すること等によって、RDSインスタンスの一部分のために作業負荷を監視する一部分を割り付けることができる。複製されたインスタンスを監視するために、イベントプロセッサは監視構成要素として機能することができる。イベントプロセッサはピングを打つか、そうでなければそのインスタンスに関連付けられた全ての複製と通信することによってRDSインスタンスの健康状態を判定することができる。インスタンスが複製されない場合は、イベントプロセッサはそのインスタンスの単一のホストマネージャと通信するだけでよい。
複製されたインスタントがある場合にイベントプロセッシングフリート間でインスタンス監視作業負荷を分割するために、特別な考慮が存在してもよい。いくつかの実施形態において、監視システムは、インスタンスの数が増加するにつれて、実質的に直線的に拡大縮小するべきである。この拡大縮小は、追加のイベントプロセッサ(例えば、ホスト)を追加することによって様々なインスタンスにおいて成し遂げることができる。イベントプロセッサが、そのイベントプロセッサによって監視されているデータベースの各複製から異なるデータゾーン内に位置することが望ましい場合があるため、イベントプロセッサの設置に対して制限が存在する場合もある。イベントプロセッサを異なるデータゾーン内に設置することによって、データセンタの故障は、2つの同時故障が同時に起こり(例えば、監視構成要素および少なくとも1つの複製の故障)、データベースが復旧不可能な状態に達する可能性があることをもたらさない。全ての複製を含め、各データベースインスタンスが継続的に監視されることを確実にするのが望ましい場合もある。これは、様々な実施形態において、データベースインスタンスを分割し、各分割の監視所有者にイベントプロセッサのうちの1つを割り付けることによって成し遂げることができる。イベントプロセッサが何らかの理由で故障する場合、故障したイベントプロセッサによって所有され、監視される部分は、他の利用可能なイベントプロセッサに、均等に再配分されるべきである。
監視システムの直線の拡張性を保証しながらも依然としてイベントプロセッサの設置に対する制限に適合するためには、少なくとも1つの実施形態におけるイベントプロセッシングフリートは、各フリートが存在するデータゾーンに基づいて異なるグループへ分けられる。各グループは、グループ内のイベントプロセッサが、複製が各イベントプロセッサと同一のデータゾーンにないRDSインスタンスと関連付けられるように構成することができる。
例として、4つの各データゾーン(DZ1、DZ2、DZ3、およびDZ4)においてインスタンスをカバーしている4つのイベントプロセッサグループ(G1、G2、G3、およびG4)が存在してもよい。各複製ペアに対して、監視作業負荷は、複製ペアと同一のデータゾーン内にないグループ間で、分配することができる。この例において、複製ペアがDZ2およびDZ3内にあるRDSインスタンスの監視作業負荷は、G1およびG4内のイベントプロセッサにわたって分割されてもよい。DZ3およびDZ4内の複製ペアに対して、作業負荷は、G1およびG2のグループ間で分割することができる。
既定のデータゾーン内に位置する全ての複製データベースに対して、各イベントプロセッサは、独立してデータゾーンペアをカバーできるイベントプロセッサのリストを算出することができる。その後に、既定のデータゾーンペアに対して、データゾーンペアをカバーしているイベントプロセッサ識別子は、辞書編集の順序でソートすることができる。データベース識別子もまた、ソートされてもよく、ゾーンペアにわたって一様に分割されてもよい。例えば、ゾーンDZ2およびDZ3内に複製を有するデータベースがあってもよい。これらのデータベースは、グループG1およびG4内のイベントプロセッサによってともに監視されてもよい。便宜上、このデータゾーンペアにおけるデータベースのデータベース識別子は、(DBl、...、DBl000)として設定することができ、グループGl(EPlおよびEP2)内に2つのイベントプロセッサが、グループG4(EP3およびEP4)内に2つのイベントプロセッサが、それぞれあってもよい。この例において、EP1がブートストラップする際、EPlは、データゾーンペア(DZ2、DZ3)内には監視されるべきデータベースが1000個あり、それらをカバーする4つのイベントプロセッサがあることを判定することができる。イベントプロセッサ識別子を辞書編集の順序でソートすることによって、EP1は、EP1がDB1からDB250をとることができ、EP2がDB251からDB500をとることができ、EP3がDB501からDB750をとることができ、EP4がDB751からDB1000をとることができることを判定することができる。EP1は、同一のステップを繰り返し、監視に適格である全ての複製ペアに対して、EP1が監視を担当しているデータベースを判定することができる。
イベントプロセッサの故障を検出するために、各イベントプロセッサは、ハートビート(HEARTBEAT)メッセージを、毎10秒等定期的に他の全てのイベントプロセッサに送信する(例えば、HTTP上で)よう構成することができる。イベントプロセッサはまた、イベントプロセッサおよびそれらのステータス(例えば、利用可能(AVAILABLE)または停止(DEAD))のリストを、各イベントプロセッサの最新のチェックインの時間とともに、維持することができる。第1のイベントプロセッサが、ハートビート_故障_時間(heartbeat_failure_time)よりも長い、典型的には6回のハートビート間隔等のある複数のハートビート間隔である一定期間、別のイベントプロセッサから連絡をもらっていない場合、第1のイベントプロセッサは、無反応なイベントプロセッサを停止(DEAD)であるか、類似状態であると宣言することができ、監視作業負荷を調整することができる。無反応なイベントプロセッサホストが始動または復旧する際、イベントプロセッサはブートストラップ(BOOTSTRAP)またはハートビート_故障_時間(heartbeat_failure_time)に類似する一定期間類似モード内で始動し、そのピアのイベントプロセッサからハートビートを受信し、そのハートビートエージェントを始動することができる。この時間の後、イベントプロセッサは、分割に割り付けられたイベントプロセッサの状態に基づき監視作業負荷の現在のスライスを判定する操作可能(OPERATIONAL)モードへ自身を移動することができる。イベントプロセッサを一定期間ブートストラップモード(BOOTSTRAP)に残す1つの理由は、イベントプロセッサを集団的に結び付ける新しいイベントプロセッサおよび残存しているイベントプロセッサがアクティブイベントプロセッサの現在の状態に集合するために十分な時間を有することを確実にするためである。
データゾーンの故障の場合において、故障データゾーン内のイベントプロセッサによって監視されるインスタンスが、残存しているグループによって引き継がれることを確実にすることが望ましい。1つの例において、4つのイベントプロセッサグループ(Gl、G2、G3、およびG4)は、それぞれ4つのデータゾーン(DZ1、DZ2、DZ3、およびDZ4)内のイベントプロセッサをカバーする。DZ1が停止すると、DZ1内のイベントプロセッサによって監視しているインスタンスは、自動的に他のデータゾーン内のイベントプロセッサによって引き継がれる。
しかしながら、3つのイベントプロセッサグループ(Gl、G2、およびG3)がデータゾーンペア(DZ2、DZ3)、(DZ3、DZ1)、および(DZ1、DZ2)を監視する状態で、領域内に3つのデータゾーンしかないことも可能である。DZ1が停止するイベントにおいて、G2およびG3は、一次複製を含むデータゾーンの故障に耐えるために、各グループが、二次複製が同一のデータゾーン内にあるインスタンスを監視する方法において再展開される必要がある。様々な実施形態において、「二次−dz−コロケーション−無視」等のフラグは、データゾーンが3−DZ領域から外れる場合にのみ、オンにすることできる。このフラグがオフになると、グループは、イベントプロセッサが複製ペアと同一のデータゾーン内に存在することができないという制限を伴い、監視作業負荷を分割する。フラグがオンの場合、グループは、この制限を無視することができ、二次複製がそれと同一のデータゾーン内にあるRDSインスタンスを選択するように自身を再整列させることができる。このフラグは、監視データベースまたは制御プレーン内の類似のデータストア内に存続することができる。
特定のRDSインスタンスを監視するイベントプロセッサが1つだけ存在することを確実にすることが望ましい場合もまたある。特定の実施形態において、フェイルオーバーアルゴリズムは、単一の監視構成要素(つまり、イベントプロセッサ)が複製ペアをいつでも監視することを要求する。ネットワーク分割のどちらの側においても2つのイベントプロセッサを、1つのイベントプロセッサがRDSインスタンスをフェイルオーバーしようと試み、もう1つが一次は依然として生きていると仮定し、「分割脳」シナリオへつながる状態で有することが望ましくない場合があるため、この制限は利用することができる。
単一のイベントプロセッサのみがRDSインスタンスを監視していることを確実にするために、イベントプロセッサは、いくつかの実施形態において、RDSインスタンスの一次複製からリースを入手することを要求されることがある。他の実施形態において、監視構成要素は、リースを管理しデータ環境内の様々な構成要素と相互作用する制御環境の別の構成要素からリースを入手することができる。RDSインスタンスの一次複製からリースを入手する場合にのみ、イベントプロセッサは既定のRDSインスタンスのためのフェイルオーバーを開始するために適格であり、それもT_リース(T_lease)等のリース期間のみに限る。イベントプロセッサは、一実施形態において、データベース複製にピングを打つことによって(例えば、HTTPステータスピングを発行することによって)RDSインスタンス一次複製からリースを入手し、データベース複製のホストマネージャは、通常の応答に加えてリースを配ることができる。いくつかの実施形態において、リースは、複製がBLRM一次であり、一次および二次複製が同期している場合、および別のイベントプロセッサに与えられた有効なリースが依然として存在する場合にのみ配られる。一次複製がリースをイベントプロセッサに配る際、一次複製はリース時間およびイベントプロセッサ識別子をそのBLRMドライブへ書き込むことができる。同期している際のBLRMディスクへの書き込みによって、一次複製は、本質的に、二次複製にリースを知らせる。したがって、リース時間およびイベントプロセッサ識別子が無事に書き込まれた後(つまり、両方の複製において複製された)にのみ、一次複製は新しいリースをイベントプロセッサに配るであろう。さらに、イベントプロセッサ識別子およびリース時間を両方の複製内に書き込むことによって、イベントプロセッサのリーススキームは、一次複製のクラッシュを切り抜けることができる。RDSインスタンスの二次複製は、少なくともいくつかの実施形態において、いかなるリースもいかなる時点において配ることはない。二次複製は、要求が、イベントプロセッサの識別子がBLRMドライブのものと同一の識別子であるイベントプロセッサからの要求である場合にのみ、一次への昇格(promoteToPrimary())または類似の要求を受け入れる。
イベントプロセッサが再起動するか、あるいは新しいホストが引き継ぐ際、イベントプロセッサはRDSインスタンスの状態(以前に監視されていなかった)が、一次複製が劣化(DEGRADED)モードにある状態のP_オンリー(P_ONLY)であると見なす。イベントプロセッサは、一次および二次複製にピングを打ち、データベースの現在の状態を判定し、必要に応じてその状態を変更する。前に指摘したように、イベントプロセッサは、一次複製が劣化(DEGRADED)状態にあると見なされる場合、いかなるフェイルオーバーも開始しない。「悲観的な」アプローチをとることによって、新しいイベントプロセッサが引き継ぐ際に、ミスがより少なくなるだろう。イベントプロセッサが再起動するか、あるいは新しいイベントプロセッサが引き継ぐ際、イベントプロセッサは既定のホストと関連付けられた両方の複製にピングを打ち、どちらの複製が現在のBLRM一次であるかを判定する。この情報が集められると、イベントプロセッサは、DNS_一次CNAMEが現在の一次複製を指していることを確実にするために適切なpDNS APIを用いてチェックすることができる。そうでない場合、イベントプロセッサは即座にフェイルオーバーを行うことができる。このシナリオは、イベントプロセッサがフェイルオーバーの最中に止まった場合に起こり得る。DNSキャッシングおよび他の効果のためにDNS情報が正しくない可能性があるため、pDNS APIは、pDNS APIが権限のあるデータベースを読み込む時に、DNS名を解決することなく問い合わせされることができる。しかしながら、万一一次および二次複製の両方が、それらが正当な一次複製であると考えるようなごくまれなイベントが起こる場合には、操作者または責任のある技術者が、呼び出されることがある。
制御プレーン内の監視データベースは、監視されるべき現在のアクティブデータベースインスタンスのリスト、各インスタンスの種類(例えば、複製された)、およびイベントプロセッサが異なる顧客関連イベントのために集める任意のイベントを記憶することができる。データベースの数が増加するにつれて、いくつかの実施形態において、単一の監視データベースを越えて拡大縮小することが必要になることがある。このために、監視データベース内の全てのテーブルは、分割することができる。監視DB分割を可能にするために、「db分割マップ」がイベントプロセッサとともに採用されてもよい。イベントプロセッサがデータベースインスタンスに関連するイベントを存続させなければいけない場合、イベントプロセッサは、そのイベントのための情報を書き込むために適切なデータベースを判定するために、「db分割マップ」を調べることができる。
図9は、バケット内のイベントプロセッサの健康状態を監視し、一実施形態に従ってイベントプロセッサのうちの1つの故障を処理するためのプロセス例900を図示する。この例において、少なくとも1つの作業負荷分割がデータプレーンのために判定される902。少なくともある程度は、データストア、インスタンス、ホストマネージャ、および監視されるべき他のそのような構成要素の数によって、全般的な作業負荷は任意の多数の別個の分割に分割することができる。1セットのイベントプロセッサは、各作業負荷分割に割り付けることができ904、セット内の各イベントプロセッサは、割り付けられた分割に対するそれぞれの部分を割り当てられる906。適切な間隔で、各イベントプロセッサは「ハートビート」メッセージを(例えば、HTTPにわたって)、同一の作業負荷分割をカバーする同一のセットまたはバケット内のイベントプロセッサに送信する908。ハートビートは、10秒毎等の任意の適切な間隔で送信することができる。一実施形態における「ハートビート」は、他のイベントプロセッサにハートビートを送信するイベントプロセッサのステータスの情報を与えるためにバケット内の各イベントプロセッサに送信される、単純なマルチキャストメッセージを指す。イベントプロセッサは、各イベントプロセッサの最新チェックイン時間とともに、イベントプロセッサおよびそれらのステータス(例えば、「利用可能」または「停止」)のリストを維持することができる。ハートビートが、バケット内の各イベントプロセッサから受信されたことを判定すると910、そのプロセスは継続することができる。
しかしながら、同一バケット内のイベントプロセッサがハートビートに応答していないと判定する場合は、特定のハートビート故障時間(例えば、6回のハートビート間隔である)と同じかそれより長い期間イベントプロセッサがハートビートを送信することに故障したかどうかについて判定が成される912。特定のハートビート故障時間が到達されていない場合、プロセスは継続することができる。ハートビート故障時間が、少なくともイベントプロセッサからのハートビートなしに到達された場合、バケット内の各アクティブイベントプロセッサは、無反応のイベントプロセッサが「停止」または類似の状態にあると宣言し、責任範囲を割り当て、監視作業負荷の部分を引き継ぐことができる914。バケット内の全てのアクティブイベントプロセッサが故障したイベントプロセッサからハートビートメッセージを受け取ることに失敗するであろうため、イベントプロセッサは、それぞれ、「欠落」イベントプロセッサの作業を拾得するのに適切な量で割り当てられた作業負荷を拡大することができる。
4つのイベントプロセッサおよび60,000個の監視されているインスタンスが存在する場合、図10の例1000に図示されるように、各イベントプロセッサは15,000個の(辞書編集の順序、または識別子による別の適切な順序等に順序付けられる)のインスタンスを処理する。イベントプロセッサのうちの1つが故障すると、各イベントプロセッサがこれから20,000個の(識別子等によって、依然として連続的に順序付けられている)インスタンスを処理できるように、他の3つのイベントプロセッサはそれらの責任の各範囲を再割り当てすることができる。したがって、インスタンスが順序付けスキームを使用して順序付けられているため、イベントプロセッサは監視されるべき順序付けスキームの範囲を調整することができ、マップする必要がなく、そうでなければどの「新しい」インスタンスを監視するかを追跡する。監視されている範囲は、例えば、監視データストア内に記憶することができる。そのようなアプローチはまた、作業負荷がイベントプロセッサにわたって自動的に均等に(実質的に)分散されるため、インスタンスが追加またはリムーブされる状況において有益である。特定のバケット内でのみハートビートすることはまた、広範囲のハートビートよりも効率的で維持し易い。
図11は、イベントプロセッサがバケットに追加される際、例えば追加のプロセッシング容量を追加した結果か、または故障したイベントプロセッサ復旧の結果であってもよく、再び作業負荷の部分を処理することが可能になる等の、バケットにわたる作業範囲を再割り当てするためのプロセス例1100を図示する。イベントプロセッサは、再始動または復旧しているイベントプロセッサホスト、あるいは単純にアクティブにされているまたはバケットに追加されているホストによって等、アクティブなることができる1102。復旧の場合にイベントプロセッサは既にバケットへ割り付けられている可能性があるが、イベントプロセッサはまた、バケットに追加することができる1104。アクティブイベントプロセッサがバケットに追加されると、イベントマネージャは、一定期間(例えば、ハートビート故障時間)「ブートストラップ」モード等のモードに入ることができ、バケット内のピアのイベントプロセッサからハートビートを受信し1106、バケット内でアクティブな他のイベントプロセッサについての情報を取得し、例えば、ハートビートを送信するための時間を判定する。イベントプロセッサは、ハートビートエージェントをバケット内の他のイベントプロセッサへハートビートを送信し始めるようにも手配することができる1108。この時間の後、ホストは、各イベントプロセッサが作業の範囲を再割り当てし、分割に割り付けられたイベントプロセッサの状態に基づいて、監視作業負荷の現在のスライスを判定することができる「操作可能」モードへ移動することができる1110。一定期間イベントプロセッサを「ブートストラップ」モードに残す1つの理由は、イベントプロセッサを集合的に結び付ける(または再度結び付ける)新しいイベントプロセッサおよび残存しているイベントプロセッサが、アクティブイベントプロセッサの現在の状態に集合するために十分な時間を有することを確実にするためである。
一実施形態に従ったアプローチはまた、例えば各イベントプロセッサを容量の50〜60%で実行すること等によってイベントプロセッサを過剰分割する。そのようなアプローチは、各バケット内において、性能に著しく否定的な影響を有することなく、少なくとも1つまたは2つのイベントプロセッサが故障することを可能にする。故障したイベントプロセッサは、例えば各ホストが再起動する場合等、いずれは再び利用可能となるであろう。そのイベントプロセッサは、次いでハートビートを再度交換し始めることができ、それによってバケット内の他のイベントプロセッサが、自動的にそのイベントプロセッサを検出することができる。割り当てられた作業は、上述のように自動的に再分散することができ、それによってその作業はバケット内の利用可能なプロセッサのより大きなセットにわたり、比較的均等に分散される。
上述の故障事例に加えて、様々な実施形態に従ってアドレス指定することができる様々な他の故障モードが存在してもよい。例えば、一次複製インスタンスは再起動することができ、一次のためのホストマネージャがオンラインに戻る際、監視構成要素が二次複製に対して未だフェイルオーバーしていない場合、一次複製は二次複製としてオンラインに戻るため、それは、BLRMステータスが「一次/二次」から「二次/二次」に変更したことをまず発見することになる。次いで、2つの複製のうちどちらが一次になるべきかを決定することはイベントプロセッサ(例えば、監視構成要素)次第になり、適切な一次への昇格(promoteToPrimary())のコールを出すことができる。二次複製インスタンスが再起動する場合、監視構成要素は二次が機能していないことに気付き、復旧のインスタンスをマークすることができる。しかしながら、一方で、二次複製が(再起動後に)オンラインに戻ると、二次復旧ワークフローはこれに気付き、二次複製のホストマネージャが再接続するよう試みることを要求することができる。これは、単純なインスタンス再起動シナリオのための新たな二次複製を作成する犠牲を払うこと避けることができる。非複製インスタンスが再起動すると、ホストマネージャは、インスタンスを昇格させるよう監視構成要素に要求することなく、自動的にそのステータスを二次から一次複製へ変換することができる。これは、非複製インスタンスのためのインスタンス再起動の復旧時間を短縮することができる。
一次複製が故障しオンラインに戻らない場合、監視構成要素は、一次故障を検出し、二次複製を新しい一次へ昇格させることができる。その後、監視構成要素は、ネットワーク管理組織(Admin)データストア内のRDSインスタンス状態を、「未決/劣化_二次復旧要(PENDING/DEGRADED_NEED_SECONDARY_RECOVERY)」等の状態にあるようにマークすることができる。この状態は、復旧スイーパに適切な復旧ワークフローを始めさせることができる。復旧ワークフローは、両方の複製が生きているかどうかを判定することを試みることができる。古い一次複製が二次複製としてオンラインに戻った場合、例えば監視構成要素が複製を停止とマークするよう再起動に十分な時間がかかった場合、複製が完全に同期されると、ワークフローは古い一次複製を新しい一次複製に接続し、復旧がなされた、例えばデータベース状態OK等としてマークすることができる。しかしながら、古い一次が全く戻ってきていない場合、ワークフローは古いインスタンスを終了し、複製インスタンスを作成することに関して記載されたのと同一のステップを使用して二次複製を作成することができる。二次複製が故障すると、監視構成要素は故障を検出し、「未決/劣化_二次復旧要(PENDING/DEGRADED_NEED_SECONDARY_RECOVERY)」または類似状態等を使用することによって、ネットワーク管理組織(Admin)データストア内のインスタンス状態を、復旧ワークフローが作動する状態にあるとして、マークすることができる。データベースが何らかの理由でクラッシュする際、一次複製のホストマネージャは、ナニー(nanny)プロセスとして機能し、自動的にデータベースを再始動させることができる。
記載されるように、監視作業負荷の各分割は、1セットのイベントプロセッサによってカバーされてもよい。1セットのイベントプロセッサを用いて作業負荷の単一の分割をカバーすることは、イベントプロセッサのうちの1つが故障するか、または様々な種類の他のそのような問題のいくつかを経験するイベント内の残存しているイベントプロセッサにわたる監視量の再分散を可能にする。一実施形態において、イベントプロセッサの各グループは、バケット内または他のそのような分割内に含まれる。バケット内の各イベントプロセッサは、単一データプレーン内のインスタンスの範囲を処理すること、あるいはそのプレーン内のインスタンスをグループ化することに対して責任がある。故障検出プロセスは、故障が起こる場合、そのバケット内の他のイベントプロセッサは、故障したイベントプロセッサによって処理されていたインスタンスに対する責任を引き継ぐことを確実にするために使用することができる。少なくとも一実施形態における監視データストアは、イベントプロセッサが様々な顧客関連イベントのために集める情報と同様に、バケット内のイベントプロセッサのセットによって監視されるべき現在のアクティブデータインスタンスのリストを保持する。監視インスタンスの数が増加するにつれて、単一の監視データストアを越えて拡大縮小することが必要になる可能性がある。したがって、db_ポーリング_リスト(db_poll_list)を含み、監視データストア内の各テーブルは分割されてもよい。
一実施形態において、イベントプロセッサは、以下の例の分割テーブルとともに展開される。
分割Id ハッシュ範囲
P0 0〜10000
P1 10000〜20000
この分割構成は、イベントプロセッサホストに対する構成ファイルとして展開することができる。
与えられた作業負荷分割が、責任のあるイベントプロセッサのセットを、持続的なキャッチアップモードに残す著しく多数のイベントを生成する場合(つまり、割り付けられた健康状態のチェックを一定時間内に終わらせることができない)、追加のイベントプロセッサは、データストアを再分割する必要なく、その作業負荷分割に責任のあるセットへ追加することができる。そのような技術を使用して、性能の拡張性は、データの拡張性の問題とは区別することができる。例えば、イベントプロセッサがキャッチアップできない非常に多くのイベントを生成する単一の分割は、単一の分割が単一のデータストアが十分な記憶空間を提供しない非常に多くのイベントを生成する状況とは区別することができる。
イベントプロセッサおよびイベントプロセッサが割り付けられる分割のメンバシップは、イベントプロセッサメンバシップ構成ファイル等の位置に記憶することができる。メンバシップ設定情報は、グループ内(同一の分割またはバケット内等)のイベントプロセッサに展開されてもよく、以下の例の形式を有することができる。
<EP識別子><EPホスト名><終了ポイント_ポート><分割Id>
単一の分割が、複数のイベントプロセッサによってカバーされる際、各イベントプロセッサは、イベントプロセッサ識別子をソートすることによって、例えば、辞書編集またはハッシュベースのソートルーティーン等を使用することによって、バケット範囲を分割し、そのバケット範囲を一様に分ける。各イベントプロセッサは、監視するのに適切な範囲を独立的に判定する。
そのようなシステムにおいて、監視されるべきデータストアおよび/もしくはインスタンスのリストまたはセットが、時間とともに自動的に投入および更新されることを確実にすることもまた、重要であり得る。1つのアプローチは、データベースリストテーブルを作成することであるかもしれず、例えば、それは必要に応じて広まることができるインスタンスのスナップショット複製である。そのようなアプローチは、しかしながら、各適切な構成要素が最も最近のコピーを有することを確実にするのと同様に、維持することが困難である可能性がある。別のアプローチは、イベントプロセッサをデータプレーン構成要素を問い合わせることであってもよく、その後制御プレーン内に局所的に情報を記憶する。そのようなアプローチは、多くのメッセージトラフィックを作成することができ、維持および更新することが困難である可能性がある。一実施形態に従ったアプローチは、代わりに、各イベントプロセッサが「ステータス設定(setStatus)」または類似のAPI等のインターフェースを映すことを可能にする。「作成」または「削除」のワークフローの一部として、例えば、タスクは、インスタンスを管理する責任があるか、または責任があったイベントプロセッサをコールするよう適切なホストマネージャに命令するワークフローの最後に追加することができる。ホストマネージャは、したがって、ワークフロー(または他のそのような動作)の結果としてステータスの変化がある時はいつでも、イベントプロセッサの「ステータス設定(setStatus)」APIを、ホストのステータスを設定するようコールすることができる。イベントプロセッサが「ステータス設定(setStatus)」APIを介してコールを受信するたびに、情報は、新しいホストを分割のセットに追加し、ホスト等をリムーブするためにローカルデータストア内に置かれる。ホストのための情報はまた、監視データストアまたは別の適切な永続的な位置へ書き込むことができる。
一実施形態において、現在のアクティブデータインスタンスの権限のあるリストは、ネットワーク管理組織(Admin)データストア内に存在する。監視されるべきデータインスタンスのアクティブなリストは、「db_ポーリング_リスト」テーブル等のテーブル内の監視データストア内に存在する。監視データストア内のインスタンスのステータスを追加、リムーブ、または更新するために、イベントプロセッサは、データストア識別子、データインスタンスに関連するパラメータ(例えば、インスタンス識別子およびDNSアドレス)、およびインスタンスステータス(例えば、「追加」、「リムーブ」、または「更新」)等のパラメータを受け入れる「ホスト更新」APIを映す。イベントプロセッサがこのコールを受信する際、イベントプロセッサはdb_ポーリング_リストテーブルへ適切な変更(例えば、エントリーを追加、リムーブ、または更新すること)を加える。例えば、顧客が、データストアidの「id1」を用いてデータストアを作成する要求を投入する場合、データストアを作成するためのワークフローは、必要なリソースをプロビジョニングし、データストアを構成すると、id1の状態をネットワーク管理組織(Admin)データストア内で「利用可能」としてマークする。作成データベースワークフロータスクの最後のステップとして、ホスト更新(updateHost)APIは、内部仮想IPを介して到達すること等によって、データストア(およびそのインスタンス)を監視ワークフローに追加するために、イベントプロセッサのうちの1つにおいて起動することができる。監視ステータスの更新をプロビジョニングワークフローの最後の(または少なくとも最後近くの)ステップにすることによって、RDSデータストアの作成、削除、または修正の利用可能性は、監視データストアの利用可能性から切り離される。
ホストマネージャが、監視されるべきアクティブインスタンスのステータスを設定すると、責任のあるイベントプロセッサは、本明細書の他の場所に記載されるように、定期的にインスタンスのためのホストマネージャにピングを打つことができる。インスタンスが利用できない、例えばホスト機械がクラッシュしているまたは再起動しているため等の場合、イベントプロセッサはインスタンスに対する応答を得ず、ネットワーク管理組織(Admin)データストアへ潜在的な問題の情報を書き込むであろう。スイーパは、その情報を検出し、適切な復旧ワークフローを生じさせ、実行させるであろう。一実施形態において、復旧ワークフローは、まず、データストアまたはデータインスタンスのメトリクスの履歴、例えばインスタンスのI/Oエラーの履歴の詳細情報等を調べる。ワークフローは、次いで、インスタンスが停止しているかどうか、例えばどこに接続エラーがあるか、あるいは接続に問題はないが増加したI/Oエラー数がある等を、自動的に判定するよう試み、特定のボリュームサポートインスタンスに潜在的な問題があることを示す。ワークフローのタスクは、問題を自動的に判定および/または分離するよう試みることができ、そこには多数の異なる構成要素に対して起こる多数の異なる問題がある。そのような判定は、そのような問題からの復旧と同様に、どうでもよい問題ではない。
しかしながら、故障から自動的に復旧することが望ましくない可能性のある状況もあり得る。例えば、全体のデータセンタが故障し、何千ものデータストアが利用不可能になることがある。これらのデータストア全てを実質的に同時に復旧しようと試みることは望ましくない場合がある。一実施形態において、スイーパ(または、制御プレーンの別の構成要素)は、エラーの最大数を用いて構成されていてもよく、または特定の種類のワークフローを同時に実行していてもよい。多数のワークフローが特定の数または閾値を上回る場合、例えばメッセージまたは他のそのような通知が送信されるか、そうでなければ操作者またはDBAのために生成されてもよく、そうすることで経験のあるユーザは、その状況を解決するのに最適なアプローチを判定することができる。一実施形態において、スイーパは、いかなる時も多くとも同じ種類の特定された数、例えば既定の種類の10のワークフロー等を実行するが、例えば25等の第2の数、または同じ種類のワークフローが要求されるまでは、警報を生成しないであろう。一実施形態に従ったシステムにおいて、DBAまたは他の認定操作者が監視プロセス(1つまたは複数)の状態を評価することができ、復旧動作を手動で実行することができる、操作可能なサービスダッシュボードを提供する。そのようなインターフェースを使用して、本明細書に記載されるように、DBAは、特定の復旧動作を実行するためにワークフローを開始するオプションを選択することができる。インターフェースは、制御プレーンがデータプレーンのデータパス内にないとしても、複数の全く異なるデータベースエンジンおよびシステムと動作するように制御プレーンとともに使用され得る。制御プレーンは、例えばエンジンのそれぞれに対して、エラーメッセージおよびログを監視することができる。そのようなアプローチはまた、各データストアを全体として監視することを可能にし、同時にデータストアの複製を監視している。異なる復旧は、したがって、複製の状態等に基づいて実行することができる。
データストアまたはデータインスタンスの非可用性または信頼性の欠如をもたらし得る様々な種類の故障が存在し得ることを認識されたい。例えば、ホストデバイスは、故障または再起動する可能性があるか、あるいはインスタンスを管理するホストマネージャアプリケーションに問題がある場合がある。例えば、コアダンプまたは区分け違反(SegV)の例外等、データストアに問題がある場合もあり得る。I/O操作もしくは通信経路に問題があるか、またはデータストアをホスティイングするインスタンスの故障の場合もまたあり得る。論理ボリュームの故障、ネットワーク停電、またはデータゾーン故障等の様々な他の種類の故障が存在することもまたあり得る。異なるワークフローは、異なる故障の種類を判定し、復旧するよう試みるために使用することができる。一例において、一実施形態におけるホストマネージャは、各データインスタンスに対するゲートウェイであり、このホストマネージャの故障は本質的にそのインスタンス上に制御が全くないことを可能にさせる。メモリが足りなくなっているTomcatプロセス等の故障をアドレス指定するために、制御プレーンの監視構成要素は、必要があればTomcatが再始動されることを確実にする。監視システムは、不必要なエラーまたはエラー検出を回避するために、再始動を調節することができる。
さらに、記載されるように、故障のサイズまたは規模等、他の要因も考慮しなければならないため、単に故障を検出し、そこから復旧するだけでは十分ではない。例えば、データストアをホスティングする単一クラウドインスタンス故障の復旧動作は、実質的に全体のデータゾーンの故障をアドレス指定する復旧動作とは異なる場合がある。より大きな問題に対しては、複数の故障は、復旧動作が様々なインスタンスを個別に同時に復旧するよう試みることによって既存の問題を混合させないように、相関され、分析される必要がある場合がある。いくつかの場合においては、同時のプロセスの数が限定される場合だけでなく、全てのデータが失われず、後続の復旧動作に起因して修正される必要が出てくるような復旧動作がとられないように、プロセスの順序付けが制御され得る場合にも、段階的な復旧を実行すること望ましい可能性がある。いくつかの場合において、復旧プロセスを可能な限りローカライズすることが望ましい場合もあり得る。可能な場合には、故障を安全な方法でローカルにアドレス指定することは、少なくともいくつかの実施形態において有益であり得る。例えば、ホストマネージャまたはデータプロセスの故障等の単純な故障に対するローカルの復旧動作は、全般的なRDSシステムのネットワーク管理組織(Admin)スタックによって実行される動作であることが好まれる場合がある。
データインスタンス、データストア、またはI/Oプロセスが故障するには様々な理由もあり得、それぞれ異なる復旧動作を要求する可能性がある。例えば、データストアバグは、データストアを故障させるか、または少なくとも著しい数の読み込み/書き込みエラーを生成する。データストアまたはインスタンスはまた、過負荷、不良ブロック、または他のそのような状況のために故障することもある。データストアのクラッシュをもたらす不適切な問い合わせ等のユーザに誘発されたエラーもまた存在し得る。他の場合において、データストアのログボリュームは、埋められるか、または破損されている可能性がある。これらおよび他の種類の故障をアドレス指定するために、データプロセスは、持続的にホストマネージャによって監視され得る。記載されるように、各ホストマネージャは、例えばステータス取得コマンドを実行することによって(例えば、MySQLに対して、これはbin/mysql_adminステータスの形状をとることができる)データストアまたはインスタンスのステータスをチェックするステータス監視構成要素を有することができる。このステータス監視構成要素は、定期的にステータスをチェックし、インスタンスが利用できなくなる場合、インスタンスを再始動させるか、そうでなければアドレス指定することができる。インスタンスが繰り返し利用できなくなるか、他のそのようなエラーを経験する場合、ステータス監視構成要素は、エラーを訂正するよう試みることを止め、情報を制御プレーン内の監視またはネットワーク管理組織データストアへ書き込ませることができる。
データストアエラーおよびI/Oクラッシュを検出するために、データストアエラーログおよび/またはカーネルログは、いくつかの実施形態において監視される可能性がある。各ホストマネージャは、これら2つ(または他の)エラーログ内の特定のエラー種に対して持続的にスキャンする別のモジュールを実行し、関連するメトリクスを生成することができる。各エラー種に対して、所定の閾値を設定することができ、それを超えると、分析および可能な復旧のために、エラーは操作者に送信されることになる。
一実施形態に従った故障検出機構は、適用される多数の制限を有する。例えば、監視構成要素は直線的に拡大縮小するよう構成することができ、それによって、例えばデータインスタンスの数がイベントプロセッサのバケットがポーリングするよう設定されるホストの数を上回る際に、追加の監視構成要素が要望通り単に追加されるようになる。さらに、例えばデータインスタンスを分割し、イベントプロセッサのうちの1つに対する各分割の監視所有者を割り付けることによって、全てのデータインスタンスが持続的に監視されるように確立することができる。記載されるように、イベントプロセッサが何らかの理由で故障する場合、その故障したイベントプロセッサによって所有および監視されていた分割は、同一バケット内のプロセッサ等他の利用可能なイベントプロセッサに、均等に再分散することができる。さらに、データベースインスタンスのリストは、RDS顧客がデータストアおよび/またはインスタンスを作成ならびに削除する際にワークフローにタスクを追加することによって最新に保つことができる。
データストア分割
高い拡張性の分散型システムにおいてよく知られるように、データストア内の分割は、データストアシステムが存在する物理システムの制限へ拡張するのみである。この制限のために、システムが単一のデータ記憶システム内、ならびに多数のデータ記憶システムにわたっての両方において拡大縮小することができるような方法で、システムを構造することが目立って望ましい場合がある。特異的なデータ記憶システムにわたるデータの水平分割は、イベントストレージ上の著しい要望を処理することができる高い拡張性のシステムに貢献することができる。
一実施形態に従ったシステムは、データベースインスタンスのリスト(db_ポーリング_リスト)、関連イベント(db_イベントテーブル)、およびセキュリティグループイベントテーブルを含むデータテーブルを分割するための分割鍵として顧客_idを利用する。いくつかのイベントは単一のデータストアに制限されず、特定のデータストアに関係することさえない場合があるため、データストア識別子よりも顧客識別子を使用することが有利になることがある。例えば、セキュリティグループ内の変更は、いかなるデータにも直接に適用しないが、顧客可視イベント(つまり、記述イベントAPI(DescribeEvent API)を使用して読み出し可能なもの)として記憶される必要がある場合がある。さらに、単一の顧客のイベントは、いくつかの実施形態においては、イベントデータは14日間等の限定された期間のみ保持されるため、単一のデータストアの記憶空間を越えて成長することはない。
水平データストア分割にわたってデータセットを分割することを処理するためには、バケット分割を使用する等、多数の方法がある。バケット分割は、分割されているデータとそのデータが記憶されている分割との間に抽象層を提供する。この抽象層は、分割データの設置を判定するためのハッシュ機構を使用するためのアプリケーションを可能にしながらも、経時的なデータの移行を伴う新しい分割の追加等、分割のより容易な操作可能な管理を可能にさせる。本明細書に記載される、バケット分割システムの実装は、特定の実施形態に特有の構成要素を含むが、全般的な概念は、明らかであるように多数の異なる使用事例に適用できる。
バケット分割を実装するために、アプリケーションに利用可能であるようなバケットの固定数が決定されてもよい。バケットの数は、アプリケーションの寿命にわたって固定されたままでもよく、十分に大きい数を選択することが、特定の実施形態においては重要になり得る。バケットの数は、全てのバケットにわたって均等に負荷を分散させる能力を反映することができ、少数の物理的な分割に独立して割り付けることができる。同一のバケットに割り付けられた独立したインスタンスが多すぎる場合は、単一の分割内の複数のバケットを効率的に記憶することが問題となり得る。固定数のバケットは、分割されるデータと分割そのものとの中間層として機能することができる。その層化の第1のステップは、データの異なる一片が様々なバケットにマップする方法を見つけ出すことである。上述のように、データの分割鍵は、顧客識別子であってもよい。効率的かつ一貫的なハッシュアルゴリズムは、独立したバケットに直接割り付けることができる値を提供するために使用することができる。顧客識別子が、バケットに割り付けられた値をハッシュする場合はいつでも、その識別子はデータの寿命の間そのバケット内にあり続けることができる。
この例において、バットは独立した作業負荷分割に割り付けられる。常に分割よりも多いバケットが存在し、そのためマッピングは多数の異なるバケットを独立した分割に割り付けるために使用することができる。割り付け構成を簡潔にするために、バケット数の範囲は、バケットを独立した分割に割り付けるために使用することができる。以下に分割の割り付けがどのようにして動作するかを示すテーブル例を図示する。
分割1={l〜25000}
分割2={25001〜50000}
この例において、バケット番号1から25,000は、「分割1」に割り付けられ、一方でバケット番号25,001から50,000は、「分割2」に割り付けられている。データがシステムに追加される必要があり、顧客識別子のハッシュがワークフローインスタンスをバケット100にマップする場合はいつでも、例えば、その顧客に関連するあらゆるデータ(データストアおよびセキュリティグループを含む)は物理的に「分割1」内にあるテーブルへ挿入することができる。そのようなアプローチは、顧客のデータベースまたはセキュリティグループに関する任意の情報を読み込むために使用することができ、識別子がバケット100にハッシュする与えられた顧客に対するイベントの要求は、「分割1」から読み込まれる。
上記の例は、変化されていない分割へのバケットの初期の割り付けを伴う比較的単純な事例を扱う。しかしながら、時として、他の分割上の負担を軽減するために、新しい分割がシステムに追加される必要があるであろう。上記のこの例を使用して、新しい分割「分割3」を他の2つの分割から負荷を取り去るために追加することができる。
分割1={l〜16666}
分割2={33333〜50000}
分割3={16667〜33333}
見られるように、8334個のバケット(番号16667から25000)が「分割1」から取り出され、「分割3」に再割り付けされた。さらに、8333個の追加バケット(番号25001から33333)が、「分割2」から取り出され、「分割3」に再割り付けされた。この再割り付けは、最も多忙な、または最も満杯のバケットに基づいていたかもしれないが、この例においては、分割にわたる比較的均等なバケットの再分散があった。
バケット割り付けが変化するにつれて、物理的な分割に存在しているデータは、影響を受けることがある。上記の例において、バケット100は、識別子が100までハッシュした顧客の情報を記憶するために使用された。この再分割シナリオにおいて、データは、バケット100が「分割1」上に留まるため、影響を受けない場合がある。バケット11000内にデータがあったかもしれないが、しかしながら、再分割以前に書き込まれたいずれのデータも「分割1」内にあるが、再分割以後に書き込まれたあらゆるデータは「分割3」内に存在するだろう。1つの分割内に存在する以前のデータと、別の分割に存在する現在のデータとを用いてこの問題を解消するために、システムは1つより多くの分割がバケットに割り付けられることを可能にする。与えられたバケットは、現在の分割および以前の分割の、少なくとも2つの分割を有することができる。本例において、再分割はバケット10001から15000が、現在の分割として「分割3」、以前の分割として「分割1」の、割り付けられた2つの分割を有することをもたらす。記載のように、バケット11000のあらゆる新しいデータは現在の分割内にあり、一方で再割り付けに先立って書き込まれたあらゆるデータは以前の分割内にある。イベントの問い合わせまたは任意の情報がバケット11000にマップする際、そのデータの現在の分割をチェックすることは重要であり、記録がそこにも存在し得るため、以前の分割をチェックすることも同様に重要である。バケット内の複数の分割検索のそのようなサポートは、与えられたバケットの以前の分割内で終了するようなインスタンスのミスの潜在的な犠牲を招く場合がある。あらゆる新たに作成されたイベントが現在の分割に書き込まれているため、しかしながら、ミスの犠牲は、再分割が起こる際に動作しているワークフローインスタンス、または閉ざされたワークフローにのみ負担される。新たに作成された好ましいイベントは、依然として再分割を効率的に行う柔軟性を可能にしながらも、性能を改善することができる。
上述のように、様々な実施形態は、多種多様な操作環境において実装することができ、その操作環境は、いくつかの場合には、多数のアプリケーションのいずれかを操作するために使用することができる1つ以上のユーザコンピュータ、コンピューティングデバイス、またはプロセッシングデバイスを含むことができる。ユーザまたはクライアントデバイスは、標準のオペレーティングシステムを実行するデスクトップまたはラップトップコンピュータ等の多数の汎用パーソナルコンピュータのいずれかを含むことができ、同様にモバイルソフトウェアを実行するセルラー、無線、およびハンドヘルドのデバイス、多数のネットワークおよびメッセージプロトコルをサポートすることができるものを含むことができる。そのようなシステムはまた、市販のオペレーティングシステムのいずれの種類をも実行する多数のワークステーション、ならびに開発およびデータベース管理等の目的の他の既知のアプリケーションを含むことができる。これらのデバイスはまた、ダミーターミナル、シンクライアント、ゲーム機等の他の電子通信デバイス、およびネットワーク経由で通信することが可能な他のデバイスを含むことができる。
様々な態様はまた、例えばサービス指向アーキテクチャの一部として等、少なくとも1つのサービスまたはウェブサービスの一部として実装することができる。ウェブサービス等のサービスは、例えば拡張マークアップ言語(XML)形式およびSOAP(「簡易オブジェクトアクセスプロトコル(Simple Object Access Protocl)」から導き出される)等の適切なプロトコルを使用して交換されたメッセージを使用して等、任意の適切な種類のメッセージングを使用して通信することができる。そのようなサービスによって提供される、または実行されるプロセスは、ウェブサービス記述言語(Web Service Description Language)(WSDL)等の任意の適切な言語で書き込むことができる。WSDL等の言語を使用することは、様々なSOAPの枠組みにおいてクライアント側のコードの自動生成等の機能性を考慮する。
ほとんどの実施形態は、TCP/IP、OSI、FTP、UPnP、NFS、CIFS、およびAppleTalk等の商用のプロトコルの種類のうち任意のものを使用して通信をサポートすることで当業者に知られている少なくとも1つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網(PSTN)、赤外線ネットワーク、ワイヤレスネットワーク、およびそれらの任意の組み合わせであってもよい。
ウェブサーバを利用する実施形態において、ウェブサーバは、HTTPサーバ、FTPサーバ、CGIサーバ、データサーバ、Javaサーバ、およびビジネスアプリケーションサーバ等のいずれの種類のサーバまたは中間階層アプリケーションをも実行することができる。サーバ(1つまたは複数)はまた、ユーザデバイスからの要求に応答して、Java(登録商標)、C、C#もしくはC++、またはPerl、Python、もしくはTCL等の任意のスクリプト言語、ならびにそれらの組み合わせ等の、任意のプログラム言語で書かれた1つ以上のスクリプトあるいはプログラムとして実装されている可能性のある1つ以上のウェブアプリケーションを実行すること等によって、プログラムまたはスクリプトを実行する能力がある。サーバ(1つまたは複数)はまた、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、およびIBM(登録商標)からの商用のものを含むが、それらに限定されないデータベースサーバを含んでもよい。
環境は、上述のように、様々なデータストアならびに他のメモリおよび記憶媒体を含むことができる。これらは、コンピュータの1つ以上に対してローカルな記憶媒体上(および/または、その中にある)、あるいはネットワークにわたるコンピュータのいくつかまたは全てから離れた記憶媒体上等の、様々な場所に存在することができる。実施形態の特定のセットにおいて、情報は、当業者によく知られているストレージエリアネットワーク(「SAN」)内に存在することがある。同様に、コンピュータ、サーバ、または他のネットワークデバイスに属する機能を実行するためのいずれかの必要なファイルは、適宜、ローカルおよび/または遠隔に記憶されてもよい。システムがコンピュータ化されたデバイスを含む場合、そのようなデバイスそれぞれは、バスを経由して電気的に接続されたハードウェア要素を含むことができ、その要素は、例えば、少なくとも1つの中央処理装置(CPU)、少なくとも1つの入力デバイス(例えば、マウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド)、および少なくとも1つの出力デバイス(例えば、ディスプレイデバイス、プリンタ、またはスピーカ)を含む。そのようなシステムはまた、ディスクドライブ、光学記憶デバイス、ランダムアクセスメモリ(「RAM」)または読み取り専用メモリ(「ROM」)等のソリッドステート記憶デバイス、ならびにリムーバブル媒体デバイス、メモリカード、フラッシュカード等の1つ以上の記憶デバイスを、含むことができる。
そのようなデバイスはまた、コンピュータ可読の記憶媒体リーダ、通信デバイス(例えば、モデム、ネットワークカード(無線または有線)、赤外線通信デバイス等)、および上記のようなワーキングメモリを含むことができる。コンピュータ可読の記憶媒体リーダは、遠隔の、ローカルの、固定の、および/または取り外し可能な記憶デバイスを代表するコンピュータ可読の記憶媒体、ならびに一時的および/またはより恒久的に、コンピュータ可読情報を含み、記憶し、伝送し、読み出す記憶媒体と接続することができるか、またはそれらを受信するように構成することができる。システムおよび様々なデバイスはまた、典型的に、クライアントアプリケーションまたはウェブブラウザ等のオペレーティングシステムおよびアプリケーションプログラムを含む、多数のソフトウェアアプリケーション、モジュール、サービス、または少なくとも1つのワーキングメモリデバイス内に位置する他の要素を含むであろう。代替の実施形態は上記からの多数の変形を有することを認識されたい。例えば、カスタマイズされたハードウェアも使用することができる、および/または特定の要素が、ハードウェア、ソフトウェア(アプレット等のポータブルソフトウェアを含む)、または両方において実装されることもある。さらに、ネットワーク入力/出力デバイス等の他のコンピューティングデバイスへの接続が採用される場合もある。
コード、またはコード部分を含むための記憶媒体およびコンピュータ可読媒体は、当技術分野で既知または使用される任意の適切な媒体を含むことができ、その媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、もしくは他のデータ等の情報の記憶および伝送のための任意の方法または技術で実装された揮発性および不揮発性媒体、取り外し可能および取り外し不可能な媒体などの記憶媒体および通信媒体であるがこれらに限定されず、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD−ROM、デジタル多目的ディスク(DVD)もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または所望の情報を記憶するために使用され得、システムデバイスによってアクセスされ得る任意の他の媒体を含む。本開示および本明細書に提供される技術に基づいて、当業者は、様々な実施形態を実装するための他の手段および/または方法を認識するであろう。
本明細書および図面は、したがって、限定的な意味ではなく、むしろ実例的な意味として捉えられるべきである。しかしながら、請求項に記載の本発明のより広い精神と範囲を逸脱しない範囲で、そこに様々な修正および変更が成されることは明白であろう。
第1項。
制御環境から関係データベースインスタンスのための複製されたインスタンスの復旧を管理するコンピュータ実装方法であって、
実行可能な命令を用いて構成される1つ以上のコンピュータシステムの制御下で、
別個の制御環境の監視構成要素を使用して、データベース環境内の一次インスタンス複製および二次インスタンス複製と定期的に通信することであって、少なくとも1つの監視構成要素によって受信された各応答は、第1および第2のインスタンス複製のうちのそれぞれ1つのためのステータス情報およびデータ世代情報を含み、一次インスタンス複製のデータ更新は、単一のデータ世代のために二次インスタンス複製に同期的に複製される、通信することと、
第1および第2のインスタンス複製のうちの1つと通信することができない少なくとも1つの監視構成要素に応答して、第1および第2のインスタンス複製が互いに通信することが可能であるかどうか、ならびに第1および第2のインスタンス複製が共通のデータ世代情報を有するかどうかを判定することと、
監視構成要素が最短期間に一次複製と通信することができない場合、二次インスタンス複製が一次複製と通信することができない場合、ならびに第2のインスタンス複製が一次複製の最新の既知の状態と同一のデータ世代情報を有する場合、二次インスタンス複製に関係データベースインスタンスのための新しい一次複製になるフェイルオーバー操作を実行させることと、
監視構成要素が最短期間に二次複製と通信することができない場合、ならびに一次インスタンス複製が二次複製と通信することができない場合、関係データベースインスタンスのための新しい二次インスタンス複製を生成する、二次インスタンス複製復旧プロセスを実行させることと、
監視構成要素が最短期間に一次複製および二次複製のどちらともと通信することができない場合、一次および二次インスタンス複製が互いに通信することが可能である場合、ならびに一次および二次インスタンス複製が同一のデータ世代情報を有する場合、フェイルオーバーまたは復旧操作が、一次および二次インスタンス複製のために実行されないことと、を含む、コンピュータ実装方法。
第2項。
監視構成要素が最短期間に一次複製と通信することができない場合、二次インスタンス複製が一次複製と通信することができない場合、ならびに第2のインスタンス複製が一次複製の最新の既知の状態と異なるデータ世代情報を有する場合、一次インスタンス複製のために特定の時点への復旧操作を実行させることをさらに含む、第1項に記載のコンピュータ実装方法。
第3項。
監視構成要素が最短期間に一次複製と通信することができない場合、ならびに二次インスタンス複製が一次複製と通信することができない場合、一次インスタンス複製を終了させることをさらに含む、第1項に記載のコンピュータ実装方法。
第4項。
ユーザは、ユーザに現在の一次インスタンス複製と通信することを可能にする別名を提供され、フェイルオーバー操作が、二次インスタンス複製を、新しい現在の一次インスタンス複製にさせる場合を含む、第1項に記載のコンピュータ実装方法。
第5項。
別個の制御環境を使用して、データベース環境内の複製データベースインスタンスを管理するコンピュータ実装方法であって、
実行可能な命令を用いて構成される1つ以上のコンピュータシステムの制御下で、
別個の制御環境の監視構成要素を使用して、データベース環境内の一次インスタンス複製および二次インスタンス複製のそれぞれに対する状態情報を監視することと、
監視構成要素が、第1および第2のインスタンス複製のうちの1つと通信することができないことに応答して、
第1および第2のインスタンス複製が、互いに通信することが可能であるかどうか、ならびに第1および第2のインスタンス複製が、共通のデータ世代識別子を有するかどうかを含む、故障情報を判定することと、
故障情報に少なくとも部分的に基づき、制御環境内で実行されるワークフローを決定することであって、ワークフローは、監視構成要素が第1および第2のインスタンス複製のうちの1つと通信することができないことに応答して、データベース環境内で実行される1つ以上のタスクを含む、判定することと、
制御環境内でワークフローを実行することと、を含む、コンピュータ実装方法。
第6項。
ワークフローは、二次インスタンス複製に、監視構成要素が最短期間に一次複製と通信することができない場合、二次インスタンス複製が一次複製と通信することができない場合、ならびに第2のインスタンス複製が一次複製の最新の既知の状態と共通のデータ世代識別子を有する場合、二次インスタンス複製に関係データベースインスタンスに対する新しい一次複製となるフェイルオーバー操作を実行させるタスクを含む、第5項に記載のコンピュータ実装方法。
第7項。
フェイルオーバー操作を実行することは、ファイルシステムをマウントすることと、新しい一次複製のためのデータベースを始動することと、をさらに含む、第6項に記載のコンピュータ実装方法。
第8項。
ワークフローは、監視構成要素が最短期間に二次複製と通信することができない場合、ならびに一次インスタンス複製が二次複製と通信することができない場合、関係データベースインスタンスに対する新しい二次インスタンス複製を生成する、二次インスタンス複製復旧プロセスを実行させるタスクを含む、第5項に記載のコンピュータ実装方法。
第9項。
ワークフローは、監視構成要素が最短期間に一次複製および二次複製のうちどちらともと通信することができない場合、一次および二次インスタンス複製が互いに通信することが可能である場合、ならびに一次および二次インスタンス複製が共通のデータ世代識別子を有する場合、フェイルオーバーまたは復旧操作を実行することなしに、制御環境内のデータストアに情報を記憶するタスクを含む、第5項に記載のコンピュータ実装方法。
第10項。
第1および第2のインスタンス複製は、単一のデータゾーン内、別個の地理的な位置における別個のデータゾーン内、複数の地理的な位置にわたる単一のデータゾーン内、または単一の地理的な領域内の複数のデータゾーンにわたってプロビジョニングされる、第5項に記載のコンピュータ実装方法。
第11項。
少なくとも1つの監視構成要素は、第3のデータゾーン内または地理的な位置、あるいは第1もしくは第2のデータゾーンまたは地理的な位置のうちの1つに配置される、第10項に記載のコンピュータ実装方法。
第12項。
ユーザは、ユーザが現在の一次インスタンス複製と通信することを可能にする別名を提供され、フェイルオーバー操作が、二次インスタンス複製を、新しい現在の一次インスタンス複製にさせる場合を含む、第5項に記載のコンピュータ実装方法。
第13項。
制御環境内の第1および第2のインスタンス複製のための状態情報およびデータ世代識別子を制御環境に記憶することをさらに含む、第5項に記載のコンピュータ実装方法。
第14項。
第1および第2のインスタンス複製のそれぞれは、データベース環境内の別個のデータインスタンス上で動作され、各データインスタンスは、1つ以上の専用ブロック記憶ボリュームに付けられる、第5項に記載のコンピュータ実装方法。
第15項。
第1のインスタンス複製と第2のインスタンス複製との1つ以上の専用ブロック記憶ボリュームの間のデータを、同期的に複製するよう操作可能なブロックレベル複製機構を使用して、一次インスタンス複製から二次インスタンス複製へデータを同期的に複製することをさらに含む、第14項に記載のコンピュータ実装方法。
第16項。
一次インスタンス複製は、顧客のための関係データベースを実行している、第5項に記載のコンピュータ実装方法。
第17項。
別個の制御環境を使用して、データベース環境内の複製データベースインスタンスを管理するためのシステムであって、
プロセッサと、
メモリデバイスであって、プロセッサによって実行されると、プロセッサに、
別個の制御環境の少なくとも1つの監視構成要素を使用して、データベース環境内の一次インスタンス複製および二次インスタンス複製のそれぞれに対する状態情報を監視させることと、
少なくとも1つの監視構成要素が、第1および第2のインスタンス複製のうちの1つと通信することができないことに応答して、
第1および第2のインスタンス複製が互いに通信することが可能かどうか、ならびに第1および第2のインスタンス複製が共通のデータ世代識別子を有するかどうかを含む故障情報を判定することと、
故障情報に少なくとも部分的に基づき、制御環境内で実行されるワークフローを判定することであって、ワークフローは、監視構成要素が第1および第2のインスタンス複製のうち1つと通信することができないことに応答して、データベース環境内で実行される1つ以上のタスクを含む、判定することと、
制御環境内でワークフローを実行することと、を行わせる命令を含む、メモリデバイスと、を備える、システム。
第18項。
ワークフローは、二次インスタンス複製にフェイルオーバー操作を実行させるタスクを含み、監視構成要素が最短期間に一次複製と通信することができない場合、二次インスタンス複製が一次複製と通信することができない場合、ならびに第1および第2のインスタンス複製が、一次複製の最新の既知の状態で共通のデータ世代識別子を有する場合、関係データベースインスタンスに対する新しい一次複製になる、第17項に記載のシステム。
第19項。
ワークフローは、監視構成要素が最短期間に二次複製と通信することができない場合、ならびに一次インスタンス複製が二次複製と通信することができない場合、関係データベースインスタンスに対する新しい二次インスタンス複製を生成する、二次インスタンス複製復旧プロセスを実行させるタスクを含む、第17項に記載のシステム。
第20項。
ワークフローは、監視構成要素が最短期間に一次複製および二次複製のどちらともと通信することができない場合、一次および二次インスタンス複製が互いに通信することが可能である場合、ならびに一次および二次インスタンス複製が共通データ世代識別子を有する場合、フェイルオーバーまたは復旧操作を実行することなしに、制御環境内のデータストアに情報を記憶するタスクを含む、第17項に記載のシステム。
第21項。
第1および第2のインスタンス複製は、単一のデータゾーン内、別個の地理的な位置における別個のデータゾーン内、複数の地理的な位置にわたる単一のデータゾーン内、または複数のデータゾーンにわたる単一の地理的な領域内にプロビジョニングされる、第17項に記載のシステム。
第22項。
ユーザは、ユーザが現在の一次インスタンス複製と通信することを可能にする別名を提供され、フェイルオーバー操作が、二次インスタンス複製を新しい現在の一次インスタンス複製にする場合を含む、第17項に記載のシステム。
第23項。
別個の制御環境を使用して、データベース環境内複製データベースインスタンスを管理する命令を記憶するコンピュータ可読記憶媒体であって、プロセッサによって実行されると、プロセッサに、
別個の制御環境の少なくとも1つの監視構成要素を使用して、データベース環境内の一次インスタンス複製および二次インスタンス複製のそれぞれのための状態情報を監視させることと、
少なくとも1つの監視構成要素が、第1および第2のインスタンス複製のうちの1つと通信することができないことに応答して、
第1および第2のインスタンス複製が互いに通信することが可能であるかどうか、ならびに第1および第2のインスタンス複製が共通のデータ世代識別子を有するかどうかを含む、故障情報を判定することと、
故障情報に少なくとも部分的に基づき、制御環境内で実行されるワークフローを判定することであって、そのワークフローは、監視構成要素が第1および第2のインスタンス複製のうちの1つと通信することができないことに応答して、データベース環境内で実行される1つ以上のタスクを含むワークフローを判定することと、
制御環境内でワークフローを実行することと、を行わせる命令を含む、コンピュータ可読記憶媒体。
第24項。
ワークフローは、二次インスタンス複製にフェイルオーバー操作を実行させるタスクを含み、監視構成要素が最短期間に一次複製と通信することができない場合、二次インスタンス複製が一次複製と通信することができない場合、ならびに第1および第2のインスタンス複製が、次複製の最新の既知の状態において共通のデータ世代識別子を有する場合、関係データベースインスタンスに対する新しい一次複製になる、第23項に記載のコンピュータ可読記憶媒体。
第25項。
ワークフローは、監視構成要素が最短期間に二次複製と通信することができない場合、ならびに一次インスタンス複製が二次複製と通信することができない場合、関係データベースインスタンスに対する新しい二次インスタンス複製を生成する、二次インスタンス複製復旧プロセスを実行させるタスクを含む、第23項に記載のコンピュータ可読記憶媒体。
第26項。
ワークフローは、監視構成要素が最短期間に一次複製および二次複製のどちらともと通信することができない場合、一次および二次インスタンス複製が互いに通信することが可能である場合、ならびに一次および二次インスタンス複製が共通のデータ世代識別子を有する場合、フェイルオーバーまたは復旧操作を実行することなく、制御環境内のデータストアに情報を記憶するタスクを含む、第23項に記載のコンピュータ可読記憶媒体。
第27項。
第1および第2のインスタンス複製は、単一のデータゾーン内、別個の地理的な位置における別個のデータゾーン内、複数の地理的な位置にわたる単一のデータゾーン内、または単一の地理的な領域内の複数のデータゾーンにわたってプロビジョニングされる、第23項に記載のコンピュータ可読記憶媒体。

Claims (14)

  1. 別個の制御環境を使用して、データベース環境内の複製データベースインスタンスを管理するコンピュータ実装方法であって、
    実行可能な命令を用いて構成される1つ以上のコンピュータシステムの制御下で、
    前記別個の制御環境の監視構成要素を使用して、前記データベース環境内の一次インスタンス複製および二次インスタンス複製のそれぞれに対する状態情報を監視することと、
    前記監視構成要素が、少なくとも前記一次インスタンス複製または二次インスタンス複製と通信することができないことに応答して、
    前記一次インスタンス複製および二次インスタンス複製が、互いに通信することが可能であるかどうか、並びに前記一次インスタンス複製および二次インスタンス複製が、共通のデータ世代識別子を有するかどうかを含む、故障情報を判定することと、
    前記故障情報に少なくとも部分的に基づき、フェイルオーバー操作または復旧プロセスを実行するかどうかを判定することと、
    を備えることを特徴とするコンピュータ実装方法。
  2. 前記別個の制御環境内で実行されるワークフローを前記故障情報に少なくとも部分的に基づいて判定することであって、前記ワークフローは、前記監視構成要素が前記一次インスタンス複製および二次インスタンス複製と通信することができないことに応答して、前記データベース環境内で実行される1つ以上のタスクを含む、判定することと、
    前記別個の制御環境内で前記ワークフローを実行することと
    をさらに備えることを特徴とする請求項1に記載のコンピュータ実装方法。
  3. 前記ワークフローは、前記監視構成要素が一定期間に前記一次インスタンス複製と通信することができない場合、前記二次インスタンス複製が前記一次インスタンス複製と通信することができない場合、並びに前記二次インスタンス複製が前記一次インスタンス複製の最新の既知の状態として共通のデータ世代識別子を有する場合、前記二次インスタンス複製に、新しい一次インスタンス複製となるフェイルオーバー操作を実行させるタスクを含む、ことを特徴とする請求項2に記載のコンピュータ実装方法。
  4. 前記ワークフローは、前記監視構成要素が最短期間に前記二次インスタンス複製と通信することができない場合、並びに前記一次インスタンス複製が前記二次インスタンス複製と通信することができない場合、新しい二次インスタンス複製を生成する二次インスタンス複製復旧プロセスを実行させるタスクを含む、ことを特徴とする請求項2に記載のコンピュータ実装方法。
  5. 前記ワークフローは、前記監視構成要素が一定期間に前記一次インスタンス複製および前記二次インスタンス複製のうちどちらとも通信することができない場合、前記一次インスタンス複製および前記二次インスタンス複製が互いに通信することが可能である場合、並びに前記一次インスタンス複製および前記二次インスタンス複製が共通のデータ世代識別子を有する場合、前記フェイルオーバー操作または前記復旧プロセスを実行することなしに、前記別個の制御環境内のデータストアに情報を記憶する1つ以上の第2のタスクを含む、ことを特徴とする請求項2に記載のコンピュータ実装方法。
  6. ユーザは、前記ユーザが現在の一次インスタンス複製と通信することを可能にする別名を提供され、前記フェイルオーバー操作が、前記二次インスタンス複製を、前記現在の一次インスタンス複製にさせる場合を含む、ことを特徴とする請求項3に記載のコンピュータ実装方法。
  7. 前記一次インスタンス複製および前記二次インスタンス複製のそれぞれは、前記データベース環境内の別個のデータインスタンス上で動作され、各データインスタンスは、1つ以上の専用ブロック記憶ボリュームに付けられる、ことを特徴とする請求項1に記載のコンピュータ実装方法。
  8. 前記一次インスタンス複製と二次インスタンス複製との前記1つ以上の専用ブロック記憶ボリュームの間のデータを、同期的に複製するよう操作可能なブロックレベル複製機構を使用して、前記一次インスタンス複製から前記二次インスタンス複製へデータを同期的に複製することをさらに備える、ことを特徴とする請求項7に記載のコンピュータ実装方法。
  9. 別個の制御環境を使用して、データベース環境内の複製データベースインスタンスを管理するためのシステムであって、
    プロセッサと、
    メモリデバイスであって、前記プロセッサによって実行されると、前記プロセッサに、
    前記別個の制御環境の少なくとも1つの監視構成要素を使用して、データベース環境内の一次インスタンス複製および二次インスタンス複製のそれぞれに対する状態情報を監視することと、
    前記少なくとも1つの監視構成要素が、前記一次インスタンス複製または前記二次インスタンス複製のうちの1つと通信することができないことに応答して、
    前記一次インスタンス複製および二次インスタンス複製が互いに通信することが可能かどうか、並びに前記一次インスタンス複製および前記二次インスタンス複製が共通のデータ世代識別子を有するかどうかを含む故障情報を判定することと、
    前記故障情報に少なくとも部分的に基づき、フェイルオーバー操作または復旧プロセスを実行するかどうかを判定することと、
    を行わせる命令を含む、メモリデバイスと、
    を備えることを特徴とするシステム。
  10. 前記別個の制御環境内で実行されるワークフローを前記故障情報に少なくとも部分的に基づいて判定することであって、前記ワークフローは、前記少なくとも1つの監視構成要素が前記一次インスタンス複製および二次インスタンス複製の1つと通信することができないことに応答して、前記データベース環境内で実行される1つ以上のタスクを含む、判定することと、
    前記別個の制御環境内で前記ワークフローを実行することと
    をさらに備えることを特徴とする請求項9に記載のシステム。
  11. 前記ワークフローは、前記少なくとも1つの監視構成要素が一定期間に前記一次インスタンス複製と通信することができない場合、前記二次インスタンス複製が前記一次インスタンス複製と通信することができない場合、並びに前記一次インスタンス複製および二次インスタンス複製が、前記一次インスタンス複製の最新の既知の状態として共通のデータ世代識別子を有する場合、前記二次インスタンス複製に、新しい一次インスタンス複製になるフェイルオーバー操作を実行させる1つ以上の第2のタスクを含む、ことを特徴とする請求項10に記載のシステム。
  12. 前記ワークフローは、前記少なくとも1つの監視構成要素が一定期間に前記二次インスタンス複製と通信することができない場合、並びに前記一次インスタンス複製が前記二次インスタンス複製と通信することができない場合、新しい二次インスタンス複製を生成する二次インスタンス複製復旧プロセスを実行させる1つ以上の第2のタスクを含む、ことを特徴とする請求項10に記載のシステム。
  13. 前記ワークフローは、前記少なくとも1つの監視構成要素が一定期間に前記一次インスタンス複製または前記二次インスタンス複製のどちらとも通信することができない場合、前記一次インスタンス複製および前記二次インスタンス複製が互いに通信することが可能である場合、並びに前記一次インスタンス複製および二次インスタンス複製が共通のデータ世代識別子を有する場合、フェイルオーバー操作または復旧プロセスを実行することなく、前記別個の制御環境内のデータストアに情報を記憶する1つ以上の第2のタスクを含む、ことを特徴とする請求項10に記載のシステム。
  14. 前記一次インスタンス複製および前記二次インスタンス複製は、第1の単一のデータゾーン内、別個の地理的な位置における別個のデータゾーン内、複数の地理的な位置にわたる第2の単一のデータゾーン内、または単一の地理的な領域内の複数のデータゾーンにわたってプロビジョニングされる、ことを特徴とする請求項10に記載のシステム。
JP2014085421A 2009-10-26 2014-04-17 複製されたデータインスタンスのためのフェイルオーバーおよび復旧 Active JP5860497B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/606,097 US8074107B2 (en) 2009-10-26 2009-10-26 Failover and recovery for replicated data instances
US12/606,097 2009-10-26

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2012536965A Division JP5529972B2 (ja) 2009-10-26 2010-10-26 複製されたデータインスタンスのためのフェイルオーバーおよび復旧

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2015247729A Division JP6416745B2 (ja) 2009-10-26 2015-12-18 複製されたデータインスタンスのためのフェイルオーバーおよび復旧

Publications (2)

Publication Number Publication Date
JP2014170567A true JP2014170567A (ja) 2014-09-18
JP5860497B2 JP5860497B2 (ja) 2016-02-16

Family

ID=43899398

Family Applications (4)

Application Number Title Priority Date Filing Date
JP2012536965A Active JP5529972B2 (ja) 2009-10-26 2010-10-26 複製されたデータインスタンスのためのフェイルオーバーおよび復旧
JP2014085421A Active JP5860497B2 (ja) 2009-10-26 2014-04-17 複製されたデータインスタンスのためのフェイルオーバーおよび復旧
JP2015247729A Active JP6416745B2 (ja) 2009-10-26 2015-12-18 複製されたデータインスタンスのためのフェイルオーバーおよび復旧
JP2017236432A Active JP6514308B2 (ja) 2009-10-26 2017-12-08 複製されたデータインスタンスのためのフェイルオーバーおよび復旧

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2012536965A Active JP5529972B2 (ja) 2009-10-26 2010-10-26 複製されたデータインスタンスのためのフェイルオーバーおよび復旧

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2015247729A Active JP6416745B2 (ja) 2009-10-26 2015-12-18 複製されたデータインスタンスのためのフェイルオーバーおよび復旧
JP2017236432A Active JP6514308B2 (ja) 2009-10-26 2017-12-08 複製されたデータインスタンスのためのフェイルオーバーおよび復旧

Country Status (7)

Country Link
US (7) US8074107B2 (ja)
EP (2) EP3276492B1 (ja)
JP (4) JP5529972B2 (ja)
CN (1) CN102656565B (ja)
CA (1) CA2778456C (ja)
ES (1) ES2645414T3 (ja)
WO (1) WO2011053594A1 (ja)

Families Citing this family (184)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6321238B1 (en) * 1998-12-28 2001-11-20 Oracle Corporation Hybrid shared nothing/shared disk database system
US20060167838A1 (en) * 2005-01-21 2006-07-27 Z-Force Communications, Inc. File-based hybrid file storage scheme supporting multiple file switches
US7975109B2 (en) 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US8229945B2 (en) 2008-03-20 2012-07-24 Schooner Information Technology, Inc. Scalable database management software on a cluster of nodes using a shared-distributed flash memory
US9705888B2 (en) * 2009-03-31 2017-07-11 Amazon Technologies, Inc. Managing security groups for data instances
US8713060B2 (en) 2009-03-31 2014-04-29 Amazon Technologies, Inc. Control service for relational data management
US8060792B2 (en) * 2009-03-31 2011-11-15 Amazon Technologies, Inc. Monitoring and automated recovery of data instances
US8307003B1 (en) 2009-03-31 2012-11-06 Amazon Technologies, Inc. Self-service control environment
US8332365B2 (en) 2009-03-31 2012-12-11 Amazon Technologies, Inc. Cloning and recovery of data volumes
US9207984B2 (en) 2009-03-31 2015-12-08 Amazon Technologies, Inc. Monitoring and automatic scaling of data volumes
US8369968B2 (en) * 2009-04-03 2013-02-05 Dell Products, Lp System and method for handling database failover
US9135283B2 (en) 2009-10-07 2015-09-15 Amazon Technologies, Inc. Self-service configuration for data environment
US8074107B2 (en) 2009-10-26 2011-12-06 Amazon Technologies, Inc. Failover and recovery for replicated data instances
US8676753B2 (en) 2009-10-26 2014-03-18 Amazon Technologies, Inc. Monitoring of replicated data instances
US8335765B2 (en) 2009-10-26 2012-12-18 Amazon Technologies, Inc. Provisioning and managing replicated data instances
US20110179057A1 (en) * 2010-01-18 2011-07-21 Microsoft Corporation Database engine throttling
US9195500B1 (en) 2010-02-09 2015-11-24 F5 Networks, Inc. Methods for seamless storage importing and devices thereof
US8868487B2 (en) 2010-04-12 2014-10-21 Sandisk Enterprise Ip Llc Event processing in a flash memory-based object store
US9047351B2 (en) 2010-04-12 2015-06-02 Sandisk Enterprise Ip Llc Cluster of processing nodes with distributed global flash memory using commodity server technology
US9164554B2 (en) 2010-04-12 2015-10-20 Sandisk Enterprise Ip Llc Non-volatile solid-state storage system supporting high bandwidth and random access
US8700842B2 (en) 2010-04-12 2014-04-15 Sandisk Enterprise Ip Llc Minimizing write operations to a flash memory-based object store
US8856593B2 (en) 2010-04-12 2014-10-07 Sandisk Enterprise Ip Llc Failure recovery using consensus replication in a distributed flash memory system
US8996611B2 (en) 2011-01-31 2015-03-31 Microsoft Technology Licensing, Llc Parallel serialization of request processing
US9454441B2 (en) 2010-04-19 2016-09-27 Microsoft Technology Licensing, Llc Data layout for recovery and durability
US8447833B2 (en) 2010-04-19 2013-05-21 Microsoft Corporation Reading and writing during cluster growth phase
US8533299B2 (en) 2010-04-19 2013-09-10 Microsoft Corporation Locator table and client library for datacenters
US9170892B2 (en) 2010-04-19 2015-10-27 Microsoft Technology Licensing, Llc Server failure recovery
US9813529B2 (en) 2011-04-28 2017-11-07 Microsoft Technology Licensing, Llc Effective circuits in packet-switched networks
US8438244B2 (en) 2010-04-19 2013-05-07 Microsoft Corporation Bandwidth-proportioned datacenters
US8823536B2 (en) * 2010-04-21 2014-09-02 Microsoft Corporation Automated recovery and escalation in complex distributed applications
US8666939B2 (en) 2010-06-28 2014-03-04 Sandisk Enterprise Ip Llc Approaches for the replication of write sets
US8874726B1 (en) * 2010-06-30 2014-10-28 Emc Corporation Automated load balancing
US8806264B2 (en) * 2010-08-30 2014-08-12 Oracle International Corporation Methods for detecting split brain in a distributed system
US9286298B1 (en) * 2010-10-14 2016-03-15 F5 Networks, Inc. Methods for enhancing management of backup data sets and devices thereof
US8412674B2 (en) * 2010-12-08 2013-04-02 Sybase, Inc. Replication resynchronization
US8694733B2 (en) 2011-01-03 2014-04-08 Sandisk Enterprise Ip Llc Slave consistency in a synchronous replication environment
US8874515B2 (en) 2011-04-11 2014-10-28 Sandisk Enterprise Ip Llc Low level object version tracking using non-volatile memory write generations
US10585766B2 (en) 2011-06-06 2020-03-10 Microsoft Technology Licensing, Llc Automatic configuration of a recovery service
US8938638B2 (en) * 2011-06-06 2015-01-20 Microsoft Corporation Recovery service location for a service
US8843502B2 (en) 2011-06-24 2014-09-23 Microsoft Corporation Sorting a dataset of incrementally received data
US8595267B2 (en) * 2011-06-27 2013-11-26 Amazon Technologies, Inc. System and method for implementing a scalable data storage service
US8713359B1 (en) * 2011-09-30 2014-04-29 Emc Corporation Autonomous primary-mirror synchronized reset
US8918501B2 (en) 2011-11-10 2014-12-23 Microsoft Corporation Pattern-based computational health and configuration monitoring
WO2013112772A1 (en) * 2012-01-26 2013-08-01 Lokahi Solutions, Llc Distributed information
US9020912B1 (en) 2012-02-20 2015-04-28 F5 Networks, Inc. Methods for accessing data in a compressed file system and devices thereof
US9135064B2 (en) 2012-03-07 2015-09-15 Sandisk Enterprise Ip Llc Fine grained adaptive throttling of background processes
US20130263151A1 (en) * 2012-04-03 2013-10-03 Microsoft Corporation Consistent Hashing Table for Workload Distribution
CN103425645B (zh) * 2012-05-14 2017-03-01 阿里巴巴集团控股有限公司 数据库集群单点故障的监控系统及方法
US8984332B2 (en) 2012-06-08 2015-03-17 Microsoft Technology Licensing, Llc Active/passive database management across clusters
US9270793B2 (en) 2012-06-19 2016-02-23 Microsoft Technology Licensing, Llc Enhanced data protection for message volumes
US8954783B2 (en) 2012-06-28 2015-02-10 Microsoft Technology Licensing, Llc Two-tier failover service for data disaster recovery
US8904229B1 (en) * 2012-06-29 2014-12-02 Emc Corporation Online recovery of a file system experiencing failure of redundant logical storage storing a single point of failure
US8904224B2 (en) 2012-07-20 2014-12-02 International Business Machines Corporation Providing replication and fail-over as a network service in data centers
US9778856B2 (en) 2012-08-30 2017-10-03 Microsoft Technology Licensing, Llc Block-level access to parallel storage
CN103838635B (zh) * 2012-11-23 2016-09-28 中国银联股份有限公司 主机健康度检测方法
EP2741452A1 (en) * 2012-12-10 2014-06-11 Robert Bosch Gmbh Method for data transmission among ECUs and/or measuring devices
CN104995615B (zh) * 2012-12-27 2018-03-30 英特尔公司 本地计算设备的预订和执行镜像写入
US9813307B2 (en) * 2013-01-28 2017-11-07 Rackspace Us, Inc. Methods and systems of monitoring failures in a distributed network system
US9397902B2 (en) 2013-01-28 2016-07-19 Rackspace Us, Inc. Methods and systems of tracking and verifying records of system change events in a distributed network system
US9483334B2 (en) 2013-01-28 2016-11-01 Rackspace Us, Inc. Methods and systems of predictive monitoring of objects in a distributed network system
US9497489B2 (en) 2013-03-12 2016-11-15 Google Technology Holdings LLC System and method for stream fault tolerance through usage based duplication and shadow sessions
JP6028850B2 (ja) * 2013-03-13 2016-11-24 日本電気株式会社 データ多重化システム
CN104102551B (zh) * 2013-04-10 2017-06-06 北京中嘉时代科技有限公司 一种基于状态的应用监控与恢复算法与模型
US9594638B2 (en) * 2013-04-15 2017-03-14 Amazon Technologies, Inc. Host recovery using a secure store
US9619238B2 (en) 2013-04-15 2017-04-11 Amazon Technologies, Inc. Remote attestation of host devices
US9128902B2 (en) * 2013-04-25 2015-09-08 Netapp, Inc. Systems and methods for managing disaster recovery in a storage system
US9471657B1 (en) 2013-05-20 2016-10-18 Amazon Technologies, Inc. Range query capacity allocation
US9330158B1 (en) * 2013-05-20 2016-05-03 Amazon Technologies, Inc. Range query capacity allocation
US9304815B1 (en) 2013-06-13 2016-04-05 Amazon Technologies, Inc. Dynamic replica failure detection and healing
US10311022B2 (en) 2013-06-24 2019-06-04 K2View Ltd. CDBMS (cloud database management system) distributed logical unit repository
US9747311B2 (en) 2013-07-09 2017-08-29 Oracle International Corporation Solution to generate a scriptset for an automated database migration
US9792321B2 (en) 2013-07-09 2017-10-17 Oracle International Corporation Online database migration
US11157664B2 (en) 2013-07-09 2021-10-26 Oracle International Corporation Database modeling and analysis
US9442983B2 (en) 2013-07-09 2016-09-13 Oracle International Corporation Method and system for reducing instability when upgrading software
US9996562B2 (en) 2013-07-09 2018-06-12 Oracle International Corporation Automated database migration architecture
US9805070B2 (en) 2013-07-09 2017-10-31 Oracle International Corporation Dynamic migration script management
US10776244B2 (en) 2013-07-09 2020-09-15 Oracle International Corporation Consolidation planning services for systems migration
CN105308577B (zh) * 2013-07-09 2018-01-05 甲骨文国际公司 用于提供负载测试服务的方法、系统和计算机可读存储器
US9967154B2 (en) 2013-07-09 2018-05-08 Oracle International Corporation Advanced customer support services—advanced support cloud portal
US11422907B2 (en) 2013-08-19 2022-08-23 Microsoft Technology Licensing, Llc Disconnected operation for systems utilizing cloud storage
US9577910B2 (en) 2013-10-09 2017-02-21 Verisign, Inc. Systems and methods for configuring a probe server network using a reliability model
US9264494B2 (en) * 2013-10-21 2016-02-16 International Business Machines Corporation Automated data recovery from remote data object replicas
US9465855B2 (en) 2013-10-22 2016-10-11 International Business Machines Corporation Maintaining two-site configuration for workload availability between sites at unlimited distances for products and services
US9882980B2 (en) 2013-10-22 2018-01-30 International Business Machines Corporation Managing continuous priority workload availability and general workload availability between sites at unlimited distances for products and services
GB201320774D0 (en) 2013-11-25 2014-01-08 Microsoft Corp Communication system architecture
GB201320778D0 (en) 2013-11-25 2014-01-08 Microsoft Corp Communication system architecture
GB201320770D0 (en) 2013-11-25 2014-01-08 Microsoft Corp Communication system architecture
GB201320776D0 (en) 2013-11-25 2014-01-08 Microsoft Corp Communication system architecture
US9626261B2 (en) * 2013-11-27 2017-04-18 Futurewei Technologies, Inc. Failure recovery resolution in transplanting high performance data intensive algorithms from cluster to cloud
US9626262B1 (en) 2013-12-09 2017-04-18 Amazon Technologies, Inc. Primary role reporting service for resource groups
CN103761161B (zh) * 2013-12-31 2017-01-04 华为技术有限公司 恢复数据的方法、服务器及系统
US9635109B2 (en) 2014-01-02 2017-04-25 International Business Machines Corporation Enhancing reliability of a storage system by strategic replica placement and migration
US10248703B2 (en) 2014-01-08 2019-04-02 Oracle International Corporation System and method for cluster-wide replication of embedded component configuration
US9798631B2 (en) 2014-02-04 2017-10-24 Microsoft Technology Licensing, Llc Block storage by decoupling ordering from durability
CN104881333B (zh) * 2014-02-27 2018-03-20 国际商业机器公司 一种存储系统及其使用的方法
US9465698B2 (en) * 2014-03-06 2016-10-11 Software Ag Systems and/or methods for data recovery in distributed, scalable multi-tenant environments
US10404613B1 (en) * 2014-03-31 2019-09-03 Amazon Technologies, Inc. Placement of control and data plane resources
US9582379B2 (en) * 2014-06-16 2017-02-28 International Business Machines Corporation Multi-site disaster recovery mechanism for distributed cloud orchestration software
US10356094B2 (en) * 2014-06-30 2019-07-16 Vescel, Llc Uniqueness and auditing of a data resource through an immutable record of transactions in a hash history
US9910740B1 (en) * 2014-06-30 2018-03-06 EMC IP Holding Company LLC Concurrent recovery operation management
US11386115B1 (en) * 2014-09-12 2022-07-12 Amazon Technologies, Inc. Selectable storage endpoints for a transactional data storage engine
US9836363B2 (en) 2014-09-30 2017-12-05 Microsoft Technology Licensing, Llc Semi-automatic failover
EP3159794B1 (en) * 2014-11-06 2019-01-16 Huawei Technologies Co. Ltd. Distributed storage replication system and method
US10282441B2 (en) * 2015-01-01 2019-05-07 Bank Of America Corporation Operation analytic repository central monitoring system
US9672264B2 (en) * 2015-01-26 2017-06-06 Netapp, Inc. Method and system for backup verification
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10437506B2 (en) 2015-08-17 2019-10-08 Microsoft Technology Licensing Llc Optimal storage and workload placement, and high resiliency, in geo-distributed cluster systems
US11561863B2 (en) 2015-08-20 2023-01-24 International Business Machines Corporation PDSE member generation clustering and recovery
US9836369B2 (en) * 2015-10-29 2017-12-05 Netapp, Inc. Storage system to recover and rewrite overwritten data
US10025680B2 (en) 2015-12-16 2018-07-17 Ab Initio Technology Llc High throughput, high reliability data processing system
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
CN105516365A (zh) * 2016-01-22 2016-04-20 浪潮电子信息产业股份有限公司 一种基于网络的分布式镜像存储块设备的管理方法
KR101758558B1 (ko) * 2016-03-29 2017-07-26 엘에스산전 주식회사 에너지 관리 서버 및 그를 갖는 에너지 관리 시스템
US11036696B2 (en) 2016-06-07 2021-06-15 Oracle International Corporation Resource allocation for database provisioning
US10768920B2 (en) 2016-06-15 2020-09-08 Microsoft Technology Licensing, Llc Update coordination in a multi-tenant cloud computing environment
WO2017214931A1 (en) * 2016-06-16 2017-12-21 Honeywell International Inc. Hardware assist mechanisms for alive detection of redundant devices
US10270654B2 (en) 2016-08-19 2019-04-23 Bank Of America Corporation System for increasing computing efficiency of communication between applications running on networked machines
US10459811B2 (en) * 2016-08-19 2019-10-29 Bank Of America Corporation System for increasing intra-application processing efficiency by transmitting failed processing work over a processing recovery network for resolution
US10180881B2 (en) 2016-08-19 2019-01-15 Bank Of America Corporation System for increasing inter-application processing efficiency by transmitting failed processing work over a processing recovery network for resolution
US11018860B2 (en) 2016-10-28 2021-05-25 Microsoft Technology Licensing, Llc Highly available and reliable secret distribution infrastructure
US10540247B2 (en) 2016-11-10 2020-01-21 International Business Machines Corporation Handling degraded conditions using a redirect module
JP6901677B2 (ja) 2017-04-17 2021-07-14 富士通株式会社 管理プログラム、管理装置および管理方法
US10579476B2 (en) * 2017-06-09 2020-03-03 International Business Machines Corporation Using alternate recovery actions for initial recovery actions in a computing system
US10644981B2 (en) 2017-06-16 2020-05-05 Hewlett Packard Enterprise Development Lp Scaling processing systems
CN109101363B (zh) * 2017-06-21 2023-09-22 中兴通讯股份有限公司 基于Android系统的异常恢复方法、装置、智能设备及存储介质
US11032127B2 (en) * 2017-06-26 2021-06-08 Verisign, Inc. Resilient domain name service (DNS) resolution when an authoritative name server is unavailable
US10977274B2 (en) * 2017-10-05 2021-04-13 Sungard Availability Services, Lp Unified replication and recovery
CN109729129B (zh) 2017-10-31 2021-10-26 华为技术有限公司 存储集群系统的配置修改方法、存储集群及计算机系统
US10795867B2 (en) 2017-11-06 2020-10-06 International Business Machines Corporation Determining available remote storages in a network to use to replicate a file based on a geographical requirement with respect to the file
US11663094B2 (en) 2017-11-30 2023-05-30 Hewlett Packard Enterprise Development Lp Reducing recovery time of an application
US10990489B2 (en) 2017-12-28 2021-04-27 Amazon Technologies, Inc. Replication system with network failover
US10585746B2 (en) * 2018-02-02 2020-03-10 EMC IP Holding Company LLC Tracking status and restarting distributed replication
US11232131B1 (en) 2018-02-09 2022-01-25 Google Llc Synchronous block level replication across availability zones
US11106492B2 (en) * 2018-04-27 2021-08-31 EMC IP Holding Company LLC Workflow service for a cloud foundry platform
CN109086292B (zh) * 2018-06-11 2023-11-28 平安科技(深圳)有限公司 一种数据库的切换方法及系统
US11263098B2 (en) * 2018-07-02 2022-03-01 Pivotal Software, Inc. Database segment load balancer
DE202019005483U1 (de) 2018-07-06 2020-10-28 Snowflake Inc. Datenreplikation und Datenausfallsicherung in Datenbanksystemen
CN110019148B (zh) * 2018-09-07 2021-05-25 网联清算有限公司 数据库容量管理方法、装置、存储介质及计算机设备
CN109284340B (zh) * 2018-09-14 2020-11-20 清华大学 资源受限智能对象中关系型数据的存储及检索方法
US11954072B2 (en) * 2018-10-12 2024-04-09 Open Text Sa Ulc Systems and methods for bidirectional content synching and collaboration through external systems
US11354299B2 (en) * 2018-10-19 2022-06-07 Oracle International Corporation Method and system for a high availability IP monitored by both OS/network and database instances
US11537619B1 (en) * 2018-10-31 2022-12-27 Amazon Technologies, Inc. Replica group modification in a distributed database
US10936452B2 (en) 2018-11-14 2021-03-02 International Business Machines Corporation Dispersed storage network failover units used to improve local reliability
US11934409B2 (en) 2018-11-23 2024-03-19 Amazon Technologies, Inc. Continuous functions in a time-series database
US11068537B1 (en) 2018-12-11 2021-07-20 Amazon Technologies, Inc. Partition segmenting in a distributed time-series database
US10997137B1 (en) 2018-12-13 2021-05-04 Amazon Technologies, Inc. Two-dimensional partition splitting in a time-series database
US11409725B1 (en) 2019-02-04 2022-08-09 Amazon Technologies, Inc. Multi-tenant partitioning in a time-series database
US11250019B1 (en) 2019-02-27 2022-02-15 Amazon Technologies, Inc. Eventually consistent replication in a time-series database
US11853317B1 (en) 2019-03-18 2023-12-26 Amazon Technologies, Inc. Creating replicas using queries to a time series database
US11431553B2 (en) * 2019-06-24 2022-08-30 Amazon Technologies, Inc. Remote control planes with automated failover
US11349718B2 (en) 2019-06-24 2022-05-31 Amazon Technologies, Inc. Capacity bursting using a remote control plane
US11513854B1 (en) 2019-06-26 2022-11-29 Amazon Technologies, Inc. Resource usage restrictions in a time-series database
US11256719B1 (en) 2019-06-27 2022-02-22 Amazon Technologies, Inc. Ingestion partition auto-scaling in a time-series database
US11194681B2 (en) * 2019-08-12 2021-12-07 Jpmorgan Chase Bank, N.A. Method and system for providing sustained resiliency in mainframe environment
US11256671B2 (en) 2019-09-13 2022-02-22 Oracle International Corporation Integrated transition control center
US11573981B1 (en) 2019-09-23 2023-02-07 Amazon Technologies, Inc. Auto-scaling using temporal splits in a time-series database
US11216487B1 (en) 2019-09-23 2022-01-04 Amazon Technologies, Inc. Schema-based spatial partitioning in a time-series database
US11507479B2 (en) * 2019-09-25 2022-11-22 Sap Se High availability for a relational database management system as a service in a cloud platform
US11409715B2 (en) * 2019-10-04 2022-08-09 Hewlett Packard Enterprise Development Lp Maintaining high-availability of a file system instance in a cluster of computing nodes
CN112749228B (zh) * 2019-10-31 2024-01-26 北京金山云网络技术有限公司 数据同步方法、装置、存储服务器及存储介质
US11385975B2 (en) * 2019-11-27 2022-07-12 Amazon Technologies, Inc. Systems and methods for enabling a highly available managed failover service
US11194501B2 (en) * 2020-01-24 2021-12-07 Netapp, Inc. Standby copies withstand cascading fails
US11416347B2 (en) 2020-03-09 2022-08-16 Hewlett Packard Enterprise Development Lp Making a backup copy of data before rebuilding data on a node
US11366598B1 (en) 2020-03-26 2022-06-21 Amazon Technologies, Inc. Dynamic lease assignments in a time-series database
US11409771B1 (en) 2020-03-26 2022-08-09 Amazon Technologies, Inc. Splitting partitions across clusters in a time-series database
US11263270B1 (en) 2020-03-26 2022-03-01 Amazon Technologies, Inc. Heat balancing in a distributed time-series database
US11397652B2 (en) 2020-03-27 2022-07-26 Amazon Technologies, Inc. Managing primary region availability for implementing a failover from another primary region
US11397651B2 (en) 2020-03-27 2022-07-26 Amazon Technologies, Inc. Managing failover region availability for implementing a failover service
US11411808B2 (en) 2020-03-27 2022-08-09 Amazon Technologies, Inc. Managing failover region availability for implementing a failover service
US11249867B2 (en) 2020-05-05 2022-02-15 Capital One Services, Llc Automating the failover of a relational database in a cloud computing environment
US11599516B1 (en) 2020-06-24 2023-03-07 Amazon Technologies, Inc. Scalable metadata index for a time-series database
US11169914B1 (en) 2020-07-01 2021-11-09 Bank Of America Corporation System for synchronization and provisioning of electronic testing data across applications
US20220066811A1 (en) * 2020-09-02 2022-03-03 Google Llc Hybrid Lease For Primary Election
US11556404B2 (en) 2020-09-22 2023-01-17 Capital One Services, Llc Systems and methods for performing a technical recovery in a cloud environment
JP7048691B1 (ja) 2020-09-30 2022-04-05 株式会社日立製作所 運用管理システムおよび運用管理方法
US20220292004A1 (en) * 2020-11-20 2022-09-15 Netapp, Inc. Mediator assisted switchover between clusters
US20220210086A1 (en) * 2020-12-30 2022-06-30 Oracle International Corporation Managing network state for high flow availability within distributed network platform
US11709741B1 (en) 2021-03-29 2023-07-25 Amazon Technologies, Inc. Systems and methods for enabling a failover service for block-storage volumes
US11941014B1 (en) 2021-06-16 2024-03-26 Amazon Technologies, Inc. Versioned metadata management for a time-series database
US11461347B1 (en) 2021-06-16 2022-10-04 Amazon Technologies, Inc. Adaptive querying of time-series data over tiered storage
US11671316B2 (en) * 2021-06-23 2023-06-06 At&T Intellectual Property I, L.P. Generating and utilizing provisioning templates to provision voice, video, and data communication services
US11620194B1 (en) * 2021-06-29 2023-04-04 Amazon Technologies, Inc. Managing failover between data streams
US20230236755A1 (en) * 2022-01-27 2023-07-27 Pure Storage, Inc. Data Resiliency Using Container Storage System Storage Pools
US20230273852A1 (en) * 2022-02-25 2023-08-31 Bank Of America Corporation Restoring a system by load switching to an alternative cloud instance and self healing

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003507817A (ja) * 1999-08-23 2003-02-25 テラスプリング・インコーポレーテッド 拡張可能なコンピューティング・システム
JP2003316522A (ja) * 2002-04-26 2003-11-07 Hitachi Ltd 計算機システムおよび計算機システムの制御方法
JP2005502131A (ja) * 2001-08-30 2005-01-20 ビーイーエイ システムズ, インコーポレイテッド 同時チェックによるクラスターキャッシュ
JP2005196683A (ja) * 2004-01-09 2005-07-21 Hitachi Ltd 情報処理システム、情報処理装置、及び情報処理システムの制御方法
JP2005284980A (ja) * 2004-03-30 2005-10-13 Toshiba Solutions Corp 2重化システム及びリモートディスクミラーリングの初期化処理方法
JP2006004147A (ja) * 2004-06-17 2006-01-05 Hitachi Ltd ディザスタリカバリシステム、プログラム及びデータベースのリカバリ方法
JP2006072635A (ja) * 2004-09-01 2006-03-16 Hitachi Ltd データ処理システムおよびそのコピー処理方法
JP2006154935A (ja) * 2004-11-25 2006-06-15 Nippon Telegr & Teleph Corp <Ntt> ディスクレスブートシステムのストレージ接続方法、そのシステム、そのための管理サーバ、ストレージ、およびプログラム
JP2006164080A (ja) * 2004-12-09 2006-06-22 Hitachi Ltd データ処理方法及びシステム
JP2008502078A (ja) * 2004-06-10 2008-01-24 アガミ システムズ インコーポレイテッド ファイル・システムを実現するための方法及び装置
JP2008525914A (ja) * 2004-12-30 2008-07-17 イーエムシー コーポレイション 動的なデータバックアップのためのシステムおよび方法

Family Cites Families (177)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5555404A (en) 1992-03-17 1996-09-10 Telenor As Continuously available database server having multiple groups of nodes with minimum intersecting sets of database fragment replicas
US5845067A (en) 1996-09-09 1998-12-01 Porter; Jack Edward Method and apparatus for document management utilizing a messaging system
US6018746A (en) 1997-12-23 2000-01-25 Unisys Corporation System and method for managing recovery information in a transaction processing system
US6560639B1 (en) 1998-02-13 2003-05-06 3565 Acquisition Corporation System for web content management based on server-side application
US6205465B1 (en) 1998-07-22 2001-03-20 Cisco Technology, Inc. Component extensible parallel execution of multiple threads assembled from program components specified with partial inter-component sequence information
US6295558B1 (en) 1998-08-21 2001-09-25 Hewlett-Packard Company Automatic status polling failover or devices in a distributed network management hierarchy
US20070162420A1 (en) 2004-01-21 2007-07-12 Oracle International Corporation Techniques for automatically discovering a database device on a network
US7315826B1 (en) 1999-05-27 2008-01-01 Accenture, Llp Comparatively analyzing vendors of components required for a web-based architecture
US6611867B1 (en) 1999-08-31 2003-08-26 Accenture Llp System, method and article of manufacture for implementing a hybrid network
US6442707B1 (en) 1999-10-29 2002-08-27 Advanced Micro Devices, Inc. Alternate fault handler
US6671821B1 (en) * 1999-11-22 2003-12-30 Massachusetts Institute Of Technology Byzantine fault tolerance
US6675229B1 (en) 1999-11-29 2004-01-06 Lucent Technologies Inc. Methods and apparatus for providing quality of service for legacy applications
US6694362B1 (en) 2000-01-03 2004-02-17 Micromuse Inc. Method and system for network event impact analysis and correlation with network administrators, management policies and procedures
US6542907B1 (en) 2000-03-31 2003-04-01 International Business Machines Corporation Method and apparatus for decentralized, invertible generation of bounded-length globally unique replica identifiers
AU2001259403A1 (en) * 2000-05-02 2001-11-12 Sun Microsystem, Inc. Method and system for providing cluster replicated checkpoint services
US6842769B1 (en) 2000-05-05 2005-01-11 Interland, Inc. Automatically configured network server
US6718481B1 (en) * 2000-05-26 2004-04-06 Emc Corporation Multiple hierarichal/peer domain file server with domain based, cross domain cooperative fault handling mechanisms
US6950871B1 (en) 2000-06-29 2005-09-27 Hitachi, Ltd. Computer system having a storage area network and method of handling data in the computer system
US20020019844A1 (en) 2000-07-06 2002-02-14 Kurowski Scott J. Method and system for network-distributed computing
US7739308B2 (en) 2000-09-08 2010-06-15 Oracle International Corporation Techniques for automatically provisioning a database over a wide area network
US7124289B1 (en) 2000-10-31 2006-10-17 Opsware Inc. Automated provisioning framework for internet site servers
US7584278B2 (en) 2000-12-11 2009-09-01 Microsoft Corporation Method and system for task based management of multiple network resources
US7010715B2 (en) * 2001-01-25 2006-03-07 Marconi Intellectual Property (Ringfence), Inc. Redundant control architecture for a network device
US6985955B2 (en) 2001-01-29 2006-01-10 International Business Machines Corporation System and method for provisioning resources to users based on roles, organizational information, attributes and third-party information or authorizations
US7197561B1 (en) 2001-03-28 2007-03-27 Shoregroup, Inc. Method and apparatus for maintaining the status of objects in computer networks using virtual state machines
AU2002338270A1 (en) * 2001-04-02 2002-10-15 Akamai Technologies, Inc. Scalable, high performance and highly available distributed storage system for internet content
US20030005091A1 (en) 2001-06-29 2003-01-02 International Business Machines Corporation Method and apparatus for improved monitoring in a distributed computing system
US7024517B1 (en) 2001-09-27 2006-04-04 Emc Corporation System and method for configuring data storage in accordance with workload requirements
US7346623B2 (en) * 2001-09-28 2008-03-18 Commvault Systems, Inc. System and method for generating and managing quick recovery volumes
JP3879471B2 (ja) 2001-10-10 2007-02-14 株式会社日立製作所 計算機資源割当方法
US7133907B2 (en) 2001-10-18 2006-11-07 Sun Microsystems, Inc. Method, system, and program for configuring system resources
US7877783B1 (en) 2001-11-15 2011-01-25 Bmc Software, Inc. System and method for secure communications with a remote software program
US7418484B2 (en) 2001-11-30 2008-08-26 Oracle International Corporation System and method for actively managing an enterprise of configurable components
US7284067B2 (en) 2002-02-20 2007-10-16 Hewlett-Packard Development Company, L.P. Method for integrated load balancing among peer servers
US7360122B2 (en) 2002-02-22 2008-04-15 Bea Systems, Inc. Method for initiating a sub-system health check
US6947981B2 (en) 2002-03-26 2005-09-20 Hewlett-Packard Development Company, L.P. Flexible data replication mechanism
US7103884B2 (en) * 2002-03-27 2006-09-05 Lucent Technologies Inc. Method for maintaining consistency and performing recovery in a replicated data storage system
US6988139B1 (en) 2002-04-26 2006-01-17 Microsoft Corporation Distributed computing of a job corresponding to a plurality of predefined tasks
US7373399B2 (en) 2002-05-09 2008-05-13 Hewlett-Packard Development Company, L.P. System and method for an enterprise-to-enterprise compare within a utility data center (UDC)
US20030212898A1 (en) 2002-05-09 2003-11-13 Doug Steele System and method for remotely monitoring and deploying virtual support services across multiple virtual lans (VLANS) within a data center
JP2003330781A (ja) 2002-05-17 2003-11-21 Hitachi Ltd データ多重保障方法
US6981135B1 (en) 2002-08-02 2005-12-27 Hewlett-Packard Development Company, L.P. System and method of configuring system components
CA2405673C (en) 2002-09-30 2009-10-06 Ibm Canada Limited-Ibm Canada Limitee Provisioning web services
WO2004047078A2 (en) 2002-11-20 2004-06-03 Filesx Ltd. Fast backup storage and fast recovery of data (fbsrd)
JP4110081B2 (ja) 2002-12-06 2008-07-02 ザインエレクトロニクス株式会社 位相選択型周波数変調装置及び位相選択型周波数シンセサイザ
US7502329B2 (en) 2003-01-27 2009-03-10 Alcatel-Lucent Usa Inc. Distributed network monitoring with bounded link utilization in IP networks
JP4322511B2 (ja) * 2003-01-27 2009-09-02 株式会社日立製作所 情報処理システムの制御方法、及び情報処理システム
US20040163008A1 (en) 2003-02-19 2004-08-19 Kim Roy Moon Remote system management and operation services in a computer network
US7583607B2 (en) 2003-03-06 2009-09-01 Hewlett-Packard Development Company, L.P. Method and apparatus for designating and implementing support level agreements
JP4452494B2 (ja) * 2003-03-11 2010-04-21 株式会社日立製作所 複数リモートストレージでのリモートコピー停止後のデータ同期化方式
US7111194B1 (en) * 2003-03-21 2006-09-19 Network Appliance, Inc. Mirror split brain avoidance
US7120824B2 (en) * 2003-05-09 2006-10-10 International Business Machines Corporation Method, apparatus and program storage device for maintaining data consistency and cache coherency during communications failures between nodes in a remote mirror pair
US7415484B1 (en) 2003-05-09 2008-08-19 Vignette Corporation Method and system for modeling of system content for businesses
US20040225659A1 (en) 2003-05-09 2004-11-11 O'brien John Storage foundry
US7165187B2 (en) * 2003-06-06 2007-01-16 Hewlett-Packard Development Company, L.P. Batch based distributed data redundancy
US7120825B2 (en) * 2003-06-06 2006-10-10 Hewlett-Packard Development Company, L.P. Adaptive batch sizing for asynchronous data redundancy
US7912820B2 (en) 2003-06-06 2011-03-22 Microsoft Corporation Automatic task generator method and system
US7152182B2 (en) * 2003-06-06 2006-12-19 Hewlett-Packard Development Company, L.P. Data redundancy system and method
US7178055B2 (en) * 2003-06-06 2007-02-13 Hewlett-Packard Development Company, L.P. Method and system for ensuring data consistency after a failover event in a redundant data storage system
US7136868B2 (en) * 2003-06-06 2006-11-14 Microsoft Corporation Database object script generation method and system
US8332864B2 (en) 2003-06-12 2012-12-11 Reuters America Inc. Business process automation
US7389333B2 (en) 2003-07-02 2008-06-17 Fujitsu Limited Provisioning a network element using custom defaults
US7701858B2 (en) 2003-07-17 2010-04-20 Sensicast Systems Method and apparatus for wireless communication in a mesh network
US7873684B2 (en) 2003-08-14 2011-01-18 Oracle International Corporation Automatic and dynamic provisioning of databases
JP4415610B2 (ja) 2003-08-26 2010-02-17 株式会社日立製作所 系切替方法、レプリカ作成方法、及びディスク装置
US7152183B2 (en) * 2003-11-20 2006-12-19 Hitachi, Ltd. Method and apparatus for volume replication management at planned and unplanned link down
US20100005531A1 (en) 2004-12-23 2010-01-07 Kenneth Largman Isolated multiplexed multi-dimensional processing in a virtual processing space having virus, spyware, and hacker protection features
US7383463B2 (en) 2004-02-04 2008-06-03 Emc Corporation Internet protocol based disaster recovery of a server
JP2005250626A (ja) * 2004-03-02 2005-09-15 Hitachi Ltd コンピュータシステム及びそのプログラム。
US7631076B2 (en) 2004-03-16 2009-12-08 International Business Machines Corporation Apparatus, system, and method for adaptive polling of monitored systems
FR2870020B1 (fr) * 2004-05-07 2007-02-02 Synerway Sas Soc Par Actions S Procede de sauvegarde et restauration de donnees pour reprise d'activite rapide et systeme mettant en oeuvre le procede
US7383291B2 (en) 2004-05-24 2008-06-03 Apple Inc. Method for sharing groups of objects
JP4489500B2 (ja) * 2004-05-26 2010-06-23 株式会社日立製作所 バックアップ方法、バックアップシステム、ディスク制御装置、及びバックアッププログラム
US7478263B1 (en) * 2004-06-01 2009-01-13 Network Appliance, Inc. System and method for establishing bi-directional failover in a two node cluster
US7624133B1 (en) 2004-06-09 2009-11-24 Symantec Operating Corporation Automatic detection of backup recovery sets
US7313721B2 (en) 2004-06-21 2007-12-25 Dot Hill Systems Corporation Apparatus and method for performing a preemptive reconstruct of a fault-tolerant RAID array
JP2006048670A (ja) 2004-07-09 2006-02-16 Tokio Kano 医療情報処理システム、医療情報処理用記憶媒体および医療情報処理用読取装置
US8046440B2 (en) 2004-08-19 2011-10-25 International Business Machines Corporation Managing resources through user-facing web services aggregated in portals
US7650356B2 (en) * 2004-08-24 2010-01-19 Microsoft Corporation Generating an optimized restore plan
GB0419599D0 (en) 2004-09-03 2004-10-06 Ibm Controlling preemptive work balancing in data storage
US7567974B2 (en) 2004-09-09 2009-07-28 Microsoft Corporation Method, system, and apparatus for configuring a data protection system
US8010337B2 (en) 2004-09-22 2011-08-30 Microsoft Corporation Predicting database system performance
JP4507249B2 (ja) 2004-10-19 2010-07-21 株式会社日立製作所 記憶デバイスの更新を制御するシステム及び方法
US20060106774A1 (en) 2004-11-16 2006-05-18 Cohen Peter D Using qualifications of users to facilitate user performance of tasks
US7945469B2 (en) * 2004-11-16 2011-05-17 Amazon Technologies, Inc. Providing an electronic marketplace to facilitate human performance of programmatically submitted tasks
US7933247B2 (en) 2004-11-18 2011-04-26 Sanjay M. Gidwani Real-time scalable wireless switching network
US7680771B2 (en) 2004-12-20 2010-03-16 International Business Machines Corporation Apparatus, system, and method for database provisioning
US7979862B2 (en) 2004-12-21 2011-07-12 Hewlett-Packard Development Company, L.P. System and method for replacing an inoperable master workload management process
US8347088B2 (en) 2005-02-01 2013-01-01 Newsilike Media Group, Inc Security systems and methods for use with structured and unstructured data
US8200700B2 (en) 2005-02-01 2012-06-12 Newsilike Media Group, Inc Systems and methods for use of structured and unstructured distributed data
US7657780B2 (en) * 2005-02-07 2010-02-02 Mimosa Systems, Inc. Enterprise service availability through identity preservation
US8161318B2 (en) * 2005-02-07 2012-04-17 Mimosa Systems, Inc. Enterprise service availability through identity preservation
US7685292B1 (en) 2005-04-07 2010-03-23 Dell Marketing Usa L.P. Techniques for establishment and use of a point-to-point tunnel between source and target devices
CN102117233B (zh) 2005-06-24 2013-07-17 信科索尔特公司 用于高性能企业数据保护的系统和方法
US8195976B2 (en) 2005-06-29 2012-06-05 International Business Machines Corporation Fault-tolerance and fault-containment models for zoning clustered application silos into continuous availability and high availability zones in clustered systems during recovery and maintenance
WO2007014296A2 (en) 2005-07-25 2007-02-01 Parascale, Inc. Scalable distributed file storage access and management
EP1929412A4 (en) 2005-08-23 2009-10-28 Mimosa Systems Inc MIGRATION ENTERPRISE SERVER VERSION BY PRESERVING IDENTITY
US20070234028A1 (en) 2005-09-15 2007-10-04 Rothman Michael A Method and apparatus for quickly changing the power state of a data processing system
US8863137B2 (en) 2005-09-23 2014-10-14 International Business Machines Corporation Systems and methods for automated provisioning of managed computing resources
US7801932B2 (en) 2005-10-11 2010-09-21 Oracle International Corporation Undo hints to speed up segment extension and tuning of undo retention
JP4668763B2 (ja) 2005-10-20 2011-04-13 株式会社日立製作所 ストレージ装置のリストア方法及びストレージ装置
US7882079B2 (en) * 2005-11-30 2011-02-01 Oracle International Corporation Database system configured for automatic failover with user-limited data loss
US7716180B2 (en) 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
US20070156872A1 (en) 2005-12-30 2007-07-05 Stoyanova Dimitrina G Method and system for Web services deployment
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
JP4839091B2 (ja) 2006-01-27 2011-12-14 株式会社日立製作所 データベース回復方法及び計算機システム
TWI274436B (en) 2006-02-23 2007-02-21 Iner Aec Executive Yuan Method of supplying fuel to fuel cells
JP2007279890A (ja) 2006-04-04 2007-10-25 Hitachi Ltd バックアップシステム及びバックアップ方法
US20070244996A1 (en) 2006-04-14 2007-10-18 Sonasoft Corp., A California Corporation Web enabled exchange server standby solution using mailbox level replication
JP4939102B2 (ja) 2006-04-21 2012-05-23 株式会社日立製作所 ネットワークブート計算機システムの高信頼化方法
US7613742B2 (en) * 2006-05-02 2009-11-03 Mypoints.Com Inc. System and method for providing three-way failover for a transactional database
US20070260693A1 (en) 2006-05-05 2007-11-08 International Business Machines Corporation Method and apparatus for utilizing portable e-mail addresses
US20070271275A1 (en) 2006-05-05 2007-11-22 Fassette Anthony M Database management function provider systems
US9384103B2 (en) 2006-05-16 2016-07-05 Oracle International Corporation EJB cluster timer
US8381306B2 (en) 2006-05-30 2013-02-19 Microsoft Corporation Translating role-based access control policy to resource authorization policy
US20070299828A1 (en) 2006-06-05 2007-12-27 Digital Mountain, Inc. Method and Apparatus for Processing Heterogeneous Data
US20070288526A1 (en) 2006-06-08 2007-12-13 Emc Corporation Method and apparatus for processing a database replica
JP4894362B2 (ja) 2006-06-09 2012-03-14 富士通株式会社 稼働状況監視プログラム
EP2035972A4 (en) 2006-06-12 2011-06-15 Zalag Corp METHODS AND APPARATUS FOR SEARCHING CONTENT
US20080010513A1 (en) * 2006-06-27 2008-01-10 International Business Machines Corporation Controlling computer storage systems
US7636868B2 (en) * 2006-06-27 2009-12-22 Microsoft Corporation Data replication in a distributed system
JP5103807B2 (ja) * 2006-06-30 2012-12-19 富士通株式会社 制御プログラム、制御方法、情報処理装置及び情報処理システム
US7725764B2 (en) 2006-08-04 2010-05-25 Tsx Inc. Failover system and method
US7822594B2 (en) 2006-08-07 2010-10-26 Voltaire Ltd. Service-oriented infrastructure management
US20080052327A1 (en) * 2006-08-28 2008-02-28 International Business Machines Corporation Secondary Backup Replication Technique for Clusters
US7761538B2 (en) 2006-08-30 2010-07-20 Microsoft Corporation Dynamically configuring, allocating and deploying computing systems
US8156082B2 (en) 2006-10-06 2012-04-10 Sybase, Inc. System and methods for temporary data management in shared disk cluster
US9015703B2 (en) 2006-10-17 2015-04-21 Manageiq, Inc. Enforcement of compliance policies in managed virtual systems
US8949826B2 (en) 2006-10-17 2015-02-03 Managelq, Inc. Control and management of virtual systems
JP5244332B2 (ja) * 2006-10-30 2013-07-24 株式会社日立製作所 情報システム、データ転送方法及びデータ保護方法
CN102193899B (zh) 2006-11-06 2017-03-01 度量控股有限责任公司 用于管理跨越多个环境的数据的系统和方法
US7917469B2 (en) 2006-11-08 2011-03-29 Hitachi Data Systems Corporation Fast primary cluster recovery
US7949847B2 (en) 2006-11-29 2011-05-24 Hitachi, Ltd. Storage extent allocation method for thin provisioning storage
JP4314267B2 (ja) 2006-11-30 2009-08-12 キヤノン株式会社 アクセス制御装置およびアクセス制御方法及び印刷システム
US7844851B2 (en) 2006-12-13 2010-11-30 Oracle International Corporation System and method for protecting against failure through geo-redundancy in a SIP server
US8312323B2 (en) 2006-12-22 2012-11-13 Commvault Systems, Inc. Systems and methods for remote monitoring in a computer network and reporting a failed migration operation without accessing the data being moved
US8150904B2 (en) 2007-02-28 2012-04-03 Sap Ag Distribution of data and task instances in grid environments
US7734947B1 (en) * 2007-04-17 2010-06-08 Netapp, Inc. System and method for virtual interface failover within a cluster
US20080263388A1 (en) 2007-04-18 2008-10-23 James Robert Allen Method and apparatus for managing customer topologies
US8099727B2 (en) 2007-06-01 2012-01-17 Netapp, Inc. System and method for providing uninterrupted operation of a replication system during a software upgrade
US20090019535A1 (en) 2007-07-10 2009-01-15 Ragingwire Enterprise Solutions, Inc. Method and remote system for creating a customized server infrastructure in real time
US20090025004A1 (en) 2007-07-16 2009-01-22 Microsoft Corporation Scheduling by Growing and Shrinking Resource Allocation
US7822892B2 (en) * 2007-07-19 2010-10-26 International Business Machines Corporation Managing the copying of writes from primary storages to secondary storages across different networks
DE102007035584B4 (de) 2007-07-30 2009-12-17 Texas Instruments Deutschland Gmbh Watchdog-Vorrichtung zur Überwachung eines elektronischen Systems
US7739243B2 (en) 2007-08-01 2010-06-15 International Business Machines Corporation System and method for dynamically configuring a multiplatform computing environment
EP2200688A1 (en) 2007-09-11 2010-06-30 Navilyst Medical, Inc. Pressure activated diaphragm valve with angled slit
JP2009070143A (ja) 2007-09-13 2009-04-02 Hitachi Ltd Nas装置の差分リモートバックアップにおけるデータ復旧方法及び計算機システム
US20090089417A1 (en) 2007-09-28 2009-04-02 David Lee Giffin Dialogue analyzer configured to identify predatory behavior
US8423739B2 (en) 2008-02-06 2013-04-16 International Business Machines Corporation Apparatus, system, and method for relocating logical array hot spots
US8175863B1 (en) 2008-02-13 2012-05-08 Quest Software, Inc. Systems and methods for analyzing performance of virtual environments
US20090240880A1 (en) 2008-03-21 2009-09-24 Hitachi, Ltd. High availability and low capacity thin provisioning
JP5075727B2 (ja) * 2008-04-25 2012-11-21 株式会社日立製作所 ストリーム配信システム及び障害検知方法
US8041679B1 (en) 2008-06-04 2011-10-18 Symantec Operating Corporation Synthetic differential backups creation for a database using binary log conversion
US8121981B2 (en) 2008-06-19 2012-02-21 Microsoft Corporation Database snapshot management
US8904003B2 (en) 2008-06-30 2014-12-02 Oracle America, Inc. Method and system for delegated job control across a network
US8019732B2 (en) * 2008-08-08 2011-09-13 Amazon Technologies, Inc. Managing access of multiple executing programs to non-local block data storage
US8020037B1 (en) 2008-09-23 2011-09-13 Netapp, Inc. Creation of a test bed for testing failover and failback operations
US8219653B1 (en) 2008-09-23 2012-07-10 Gogrid, LLC System and method for adapting a system configuration of a first computer system for hosting on a second computer system
US8392915B2 (en) 2008-11-19 2013-03-05 Oracle International Corporation Efficient volume manager hot swapping
US7941697B2 (en) 2008-12-30 2011-05-10 Symantec Operating Corporation Failure handling using overlay objects on a file system using object based storage devices
US8170997B2 (en) 2009-01-29 2012-05-01 Microsoft Corporation Unbundled storage transaction services
US9208188B2 (en) 2009-02-17 2015-12-08 Microsoft Technology Licensing, Llc Tenant management of a hosted multi-tenant application
US7971094B1 (en) * 2009-03-03 2011-06-28 Netapp, Inc. Method, system and apparatus for creating and executing a failover plan on a computer network
US8332365B2 (en) 2009-03-31 2012-12-11 Amazon Technologies, Inc. Cloning and recovery of data volumes
US8060792B2 (en) 2009-03-31 2011-11-15 Amazon Technologies, Inc. Monitoring and automated recovery of data instances
US8713060B2 (en) 2009-03-31 2014-04-29 Amazon Technologies, Inc. Control service for relational data management
US9207984B2 (en) 2009-03-31 2015-12-08 Amazon Technologies, Inc. Monitoring and automatic scaling of data volumes
US9705888B2 (en) 2009-03-31 2017-07-11 Amazon Technologies, Inc. Managing security groups for data instances
US8307003B1 (en) 2009-03-31 2012-11-06 Amazon Technologies, Inc. Self-service control environment
US8001425B2 (en) * 2009-04-08 2011-08-16 Hewlett-Packard Development Company, L.P, Preserving state information of a storage subsystem in response to communication loss to the storage subsystem
US8234518B2 (en) * 2009-07-21 2012-07-31 Vmware, Inc. Method for voting with secret shares in a distributed system
US9135283B2 (en) 2009-10-07 2015-09-15 Amazon Technologies, Inc. Self-service configuration for data environment
US8150808B2 (en) 2009-10-21 2012-04-03 Delphix Corp. Virtual database system
US8074107B2 (en) 2009-10-26 2011-12-06 Amazon Technologies, Inc. Failover and recovery for replicated data instances
US8676753B2 (en) 2009-10-26 2014-03-18 Amazon Technologies, Inc. Monitoring of replicated data instances
US8335765B2 (en) 2009-10-26 2012-12-18 Amazon Technologies, Inc. Provisioning and managing replicated data instances
US8788459B2 (en) * 2012-05-15 2014-07-22 Splunk Inc. Clustering for high availability and disaster recovery

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003507817A (ja) * 1999-08-23 2003-02-25 テラスプリング・インコーポレーテッド 拡張可能なコンピューティング・システム
JP2005502131A (ja) * 2001-08-30 2005-01-20 ビーイーエイ システムズ, インコーポレイテッド 同時チェックによるクラスターキャッシュ
JP2003316522A (ja) * 2002-04-26 2003-11-07 Hitachi Ltd 計算機システムおよび計算機システムの制御方法
JP2005196683A (ja) * 2004-01-09 2005-07-21 Hitachi Ltd 情報処理システム、情報処理装置、及び情報処理システムの制御方法
JP2005284980A (ja) * 2004-03-30 2005-10-13 Toshiba Solutions Corp 2重化システム及びリモートディスクミラーリングの初期化処理方法
JP2008502078A (ja) * 2004-06-10 2008-01-24 アガミ システムズ インコーポレイテッド ファイル・システムを実現するための方法及び装置
JP2006004147A (ja) * 2004-06-17 2006-01-05 Hitachi Ltd ディザスタリカバリシステム、プログラム及びデータベースのリカバリ方法
JP2006072635A (ja) * 2004-09-01 2006-03-16 Hitachi Ltd データ処理システムおよびそのコピー処理方法
JP2006154935A (ja) * 2004-11-25 2006-06-15 Nippon Telegr & Teleph Corp <Ntt> ディスクレスブートシステムのストレージ接続方法、そのシステム、そのための管理サーバ、ストレージ、およびプログラム
JP2006164080A (ja) * 2004-12-09 2006-06-22 Hitachi Ltd データ処理方法及びシステム
JP2008525914A (ja) * 2004-12-30 2008-07-17 イーエムシー コーポレイション 動的なデータバックアップのためのシステムおよび方法

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
CSNB201000977001; ヴイエムウェア株式会社: VMware徹底入門 第1版, 20090805, pp. 280-284, 株式会社翔泳社 *
CSND199801381021; 山口 学: 'PCサーバのダウンタイムを解消する!!NTクラスタリング・テクノロジー' Windows NT World 第3巻第4号通巻21号, 19980401, pp. 260-261, 株式会社IDGコミュニケーションズ *
CSNG200900506002; 澤田 智明: 'OSSソリューションによる"プライベート・クラウド"の動向' 電子情報通信学会技術研究報告 Vol. 109 No. 192, 20090911, pp. 17-22, 社団法人電子情報通信学会 *
JPN6015008246; ヴイエムウェア株式会社: VMware徹底入門 第1版, 20090805, pp. 280-284, 株式会社翔泳社 *
JPN6015008248; 山口 学: 'PCサーバのダウンタイムを解消する!!NTクラスタリング・テクノロジー' Windows NT World 第3巻第4号通巻21号, 19980401, pp. 260-261, 株式会社IDGコミュニケーションズ *
JPN6015008249; 澤田 智明: 'OSSソリューションによる"プライベート・クラウド"の動向' 電子情報通信学会技術研究報告 Vol. 109 No. 192, 20090911, pp. 17-22, 社団法人電子情報通信学会 *

Also Published As

Publication number Publication date
EP3276492B1 (en) 2019-05-15
US20230393953A1 (en) 2023-12-07
JP2013508883A (ja) 2013-03-07
US20140081916A1 (en) 2014-03-20
US9298728B2 (en) 2016-03-29
US20210208980A1 (en) 2021-07-08
EP2494444B1 (en) 2017-09-27
US8595547B1 (en) 2013-11-26
CA2778456C (en) 2017-08-08
US8074107B2 (en) 2011-12-06
EP2494444A1 (en) 2012-09-05
US9817727B2 (en) 2017-11-14
EP2494444A4 (en) 2015-11-11
JP2018045715A (ja) 2018-03-22
JP5529972B2 (ja) 2014-06-25
ES2645414T3 (es) 2017-12-05
CA2778456A1 (en) 2011-05-05
US20110099420A1 (en) 2011-04-28
JP2016085753A (ja) 2016-05-19
CN102656565A (zh) 2012-09-05
JP6514308B2 (ja) 2019-05-15
EP3276492A1 (en) 2018-01-31
JP5860497B2 (ja) 2016-02-16
US20160210205A1 (en) 2016-07-21
WO2011053594A1 (en) 2011-05-05
JP6416745B2 (ja) 2018-10-31
US10860439B2 (en) 2020-12-08
US20180067822A1 (en) 2018-03-08
CN102656565B (zh) 2015-04-15
US11714726B2 (en) 2023-08-01

Similar Documents

Publication Publication Date Title
JP6416745B2 (ja) 複製されたデータインスタンスのためのフェイルオーバーおよび復旧
US11477105B2 (en) Monitoring of replicated data instances
US8060792B2 (en) Monitoring and automated recovery of data instances
EP2494438B1 (en) Provisioning and managing replicated data instances
Schmidt Operating Systems

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150303

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150629

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

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20151204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151218

R150 Certificate of patent or registration of utility model

Ref document number: 5860497

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250