(57)【要約】【課題】  複数のデータセンタのデータサーバにおいて、データの複数のコピーのデータ完全性を保持するための方法、コンピュータ・プログラム製品及びシステムを提供する。【解決手段】  複数のデータセンタのデータサーバにおいて、データの複数のコピーのデータ完全性を保持するための方法、コンピュータ・プログラム製品及びシステムが、その１つがマスター・カタログ・サーバとして選択されるカタログ・サーバのクラスタを保持することと、データサーバから選択された主データサーバ内にデータを格納することと、データを、データサーバから選択された１つ又は複数のバックアップ・データサーバに複製することと、データ状態情報をマスター・カタログ・サーバに記録することと、データ状態情報をカタログ・サーバのクラスタに複製することと、主データサーバが故障したときに、データサーバ及びカタログ・サーバのクラスタを更新することとを含む。【選択図】      図１
2011530127.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータセンタにわたって複数のデータサーバ内に格納された、データの複数のコピーのデータ完全性を保持する方法であって、
前記複数のデータサーバから主データサーバを選択して前記データを格納し、前記データを前記複数のデータサーバ内の他のデータサーバに複製することと、
カタログ・サーバのクラスタを保持することであって、前記カタログ・サーバの１つをマスター・カタログ・サーバとして選択する、ことと、
前記データのデータ状態情報を前記マスター・カタログ・サーバに記録し、前記データ状態情報を前記カタログ・サーバのクラスタ内の他のカタログ・サーバに複製することと、
前記主データサーバの故障に応答して、前記複数のデータサーバから新しい主データサーバを選択し、前記カタログ・サーバのクラスタを更新することと、
を含む方法。
【請求項２】
前記更新することは、
前記新しい主データサーバを含む新しいデータ状態情報を前記マスター・カタログ・サーバに登録することと、
前記新しいデータ状態情報を前記カタログ・サーバのクラスタ内の他のカタログ・サーバに複製することと、
を含む、請求項１に記載の方法。
【請求項３】
前記新しい主データサーバを選択する前に、前記故障状態の主データサーバによって切断されたデータサーバのマジョリティ・グループ及びマイノリティ・グループを管理することと、
前記マイノリティ・グループ内のデータサーバの機能を制御することと、
前記データサーバのマイノリティ・グループにおいてデータのダーティ・レコードをコンパイルすることと、
前記マイノリティ・グループ内の各サーバをヘッドマスター・コントローラに接続しようと試みることによって、前記故障状態の主データサーバを除去することと、
前記ヘッドマスター・コントローラに接続された前記データサーバを再編成することと、
をさらに含む、請求項２に記載の方法。
【請求項４】
ユーザからのサービス要求を、前記複数のデータサーバ内の最も近いデータサーバに経路指定することをさらに含む、請求項１から請求項３までのいずれかに記載の方法。
【請求項５】
複数のデータセンタにわたって複数のデータサーバ内に格納された、データの複数のコピーのデータ完全性を保持するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、
コンピュータ使用可能プログラム・コードがその中で具体化されるコンピュータ使用可能媒体を含み、前記コンピュータ使用可能プログラム・コードは、
前記複数のデータサーバから主データサーバを選択して前記データを格納し、前記データを前記複数のデータサーバ内の他のデータサーバに複製するための命令と、
カタログ・サーバのクラスタを保持するための命令であって、前記カタログ・サーバの１つをマスター・カタログ・サーバとして選択する、命令と、
前記データのデータ状態情報を前記マスター・カタログ・サーバに記録し、前記データ状態情報を前記カタログ・サーバのクラスタ内の他のカタログ・サーバに複製するための命令と、
前記主データサーバの故障に応答して、前記複数のデータサーバから新しい主データサーバを選択し、前記カタログ・サーバのクラスタを更新するための命令と、
を含むコンピュータ・プログラム製品。
【請求項６】
前記更新するための命令は、
前記新しい主データサーバを含む新しいデータ状態情報を前記マスター・カタログ・サーバに登録するための命令と、
前記新しいデータ状態情報を前記カタログ・サーバのクラスタ内の他のカタログ・サーバに複製するための命令と、
を含む、請求項５に記載のコンピュータ・プログラム製品。
【請求項７】
前記新しい主データサーバを選択するための命令の前に、前記故障状態の主データサーバにより切断されたデータサーバのマジョリティ・グループ及びマイノリティ・グループを管理するための命令と、
前記マイノリティ・グループ内のデータサーバの機能を制御するための命令と、
前記データサーバのマイノリティ・グループにおいてデータのダーティ・レコードをコンパイルするための命令と、
前記マイノリティ・グループ内の各サーバをヘッドマスター・コントローラに接続しようと試みることによって、前記故障状態の主データサーバを除去するための命令と、
前記ヘッドマスター・コントローラに接続された前記データサーバを再編成するための命令と、
をさらに含む、請求項６に記載のコンピュータ・プログラム製品。
【請求項８】
ユーザからのサービス要求を、前記複数のデータサーバ内の最も近いデータサーバに経路指定するための命令をさらに含む、請求項５から請求項７までのいずれかに記載のコンピュータ・プログラム製品。
【請求項９】
プロセッサと、
前記プロセッサと動作可能に結合されたメモリと、
前記プロセッサ及び前記メモリと動作可能に結合されたストレージ・デバイスと、
複数のデータセンタにわたって複数のデータサーバ内に格納された、データの複数のコピーのデータ完全性を保持するためのコンピュータ・プログラム製品と、
を含み、前記コンピュータ・プログラム製品は、
コンピュータ使用可能プログラム・コードがその中で具体化されたコンピュータ使用可能媒体を含み、前記コンピュータ使用可能プログラム・コードは、
前記複数のデータサーバから主データサーバを選択して前記データを格納し、前記データを前記複数のデータサーバ内の他のデータサーバに複製するための命令と、
カタログ・サーバのクラスタを保持するための命令であって、前記カタログ・サーバの１つをマスター・カタログ・サーバとして選択する、命令と、
前記データのデータ状態情報を前記マスター・カタログ・サーバに記録し、前記データ状態情報を前記カタログ・サーバのクラスタ内の他のカタログ・サーバに複製するための命令と、
前記主データサーバの故障に応答して、前記複数のデータサーバから新しい主データサーバを選択し、前記カタログ・サーバのクラスタを更新するための命令と、
を含むコンピュータ・システム。
【請求項１０】
前記更新するための命令は、
前記新しい主データサーバを含む新しいデータ状態情報を前記マスター・カタログ・サーバに登録するための命令と、
前記新しいデータ状態情報を前記カタログ・サーバのクラスタ内の他のカタログ・サーバに複製するための命令と、
を含む、請求項９に記載のコンピュータ・システム。
【請求項１１】
前記新しい主データサーバを選択するための命令の前に、前記故障状態の主データサーバによって切断されたデータサーバのマジョリティ・グループ及びマイノリティ・グループを管理するための命令と、
前記マイノリティ・グループ内のデータサーバの機能を制御するための命令と、
前記データサーバのマイノリティ・グループにおいて、データのダーティ・レコードをコンパイルするための命令と、
前記マイノリティ・グループ内の各サーバをヘッドマスター・コントローラに接続しようと試みることによって、前記故障状態の主データサーバを除去するための命令と、
前記ヘッドマスター・コントローラに接続された前記データサーバを再編成するための命令と、
をさらに含む、請求項１０に記載のコンピュータ・システム。
【請求項１２】
ユーザからのサービス要求を、前記複数のデータサーバ内の最も近いデータサーバに経路指定するための命令をさらに含む、請求項９から請求項１１までのいずれかに記載のコンピュータ・システム。
【請求項１３】
前記複数のデータセンタの１つが故障したときにもたらされる第１及び第２のネットワーク区画を検出して管理するように構成されたネットワーク区画マネージャと、
前記第１及び第２のネットワーク区画の少なくとも１つにおけるデータセンタの機能を制御するように構成されたヘッドマスター・コントローラと、
前記第２のネットワーク区画への全ての書き込みトランザクションを前記第１のネットワーク区画にリダイレクトするように構成されたルータと、
前記第２のネットワーク区画における選択されたデータサーバを前記ヘッドマスター・コントローラに再接続し、前記ヘッドマスター・コントローラが、前記選択されたデータサーバの機能制限を除去できるように構成された修理マネージャと、
前記修理マネージャが前記ヘッドマスター・コントローラへの接続を確立した後、前記選択されたデータサーバのステータス及び権限情報を回復させるように構成された回復マネージャと、
前記故障状態のデータセンタ内の故障状態のデータサーバを除去し、前記複数のデータサーバ内の他のデータサーバを再編成するように構成された一時的再編成マネージャと、
前記他のデータサーバの各々のサービス能力に応じて、トラフィックを前記他のデータサーバにリダイレクトするように構成されたロード及びトラフィック・コントローラと、
前記データセンタ間の接続を監視するように構成されたデータセンタ間接続マネージャと、
を含む、請求項９に記載のコンピュータ・システム。
【請求項１４】
前記第１のネットワーク区画は、前記第２のネットワーク区画よりも多くのデータセンタを含む、請求項１３に記載のコンピュータ・システム。
【請求項１５】
前記機能は、選択されたネットワーク区画におけるデータセンタのトランザクション・コミット権限を除去することと、前記選択されたネットワーク区画に対して非ダーティ・リードを保持することとを含む、請求項１３又は請求項１４に記載のコンピュータ・システム。
【請求項１６】
前記選択されたネットワーク区画は、データセンタの数が他方のものよりも少ない、前記第１のネットワーク区画及び前記第２のネットワーク区画のうちの一方である、請求項１５に記載のコンピュータ・システム。
【請求項１７】
前記ルータはまた、ダーティ・レコードをコンパイルするように構成される、請求項１３から請求項１６までのいずれかに記載のコンピュータ・システム。
【請求項１８】
前記修理マネージャは、予め設定されたスケジュールに従って、前記区画化されたヘッドマスター・コントローラに常に接続しようと試みる、請求項１３から請求項１７までのいずれかに記載のコンピュータ・システム。
【請求項１９】
多数のデータセンタにわたって複数のデータサーバ内に格納された、データの複数のコピーのデータ完全性を保持するためのコンピュータ・システムであって、
前記複数のデータセンタの１つが故障したときにもたらされる第１及び第２のネットワーク区画を検出して管理するように構成されたネットワーク区画マネージャと、
前記第１及び第２のネットワーク区画の少なくとも１つにおけるデータセンタの機能を制御するように構成されたヘッドマスター・コントローラと、
前記第２のネットワーク区画への全ての書き込みトランザクションを前記第１のネットワーク区画にリダイレクトするように構成されたルータと、
前記第２のネットワーク区画における前記選択されたデータサーバを前記ヘッドマスター・コントローラに再接続し、前記ヘッドマスター・コントローラが、前記選択されたデータサーバの機能制限を除去できるように構成された修理マネージャと、
を前記ヘッドマスター・コントローラに再接続するように構成された修理マネージャと、
前記修理マネージャが前記ヘッドマスター・コントローラへの接続を確立した後、前記選択されたデータサーバのステータス及び権限情報を回復させるように構成された回復マネージャと、
前記故障状態のデータセンタ内の故障状態のデータサーバを除去し、前記複数のデータサーバ内の他のデータサーバを再編成するように構成された一時的再編成マネージャと、
前記他のデータサーバの各々のサービス能力に応じて、トラフィックを前記他のデータサーバにリダイレクトするように構成されたロード及びトラフィック・コントローラと、
前記データセンタ間の接続を監視するように構成されたデータセンタ間接続マネージャと、
を含むコンピュータ・システム。
【請求項２０】
前記第１のネットワーク区画は、前記第２のネットワーク区画よりも多くのデータセンタを含む、請求項１９に記載のコンピュータ・システム。
【請求項２１】
前記機能は、選択されたネットワーク区画におけるデータセンタのトランザクション・コミット権限を除去することと、前記選択されたネットワーク区画に対して非ダーティ・リードを保持することとを含む、請求項１９又は請求項２０に記載のコンピュータ・システム。
【請求項２２】
前記選択されたネットワーク区画は、データセンタの数が他方のものよりも少ない、前記第１及び第２のネットワーク区画のうちの一方である、請求項２１に記載のコンピュータ・システム。
【請求項２３】
前記ルータはまた、ダーティ・レコードをコンパイルするように構成される、請求項１９から請求項２２までのいずれかに記載のコンピュータ・システム。
【請求項２４】
前記修理マネージャは、予め設定されたスケジュールに従って、前記区画化されたヘッドマスター・コントローラに常に接続しようと試みる、請求項１９から請求項２４までのいずれかに記載のコンピュータ・システム。
【請求項２５】
コンピュータ上で実行されたときに、請求項１から請求項４までのいずれかに記載の方法を実行するように適合されたプログラム・コード手段を含むコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データセンタにおけるデータ管理に関する。より具体的には、本発明は、多数のデータセンタのデータサーバにおいて、データの多数のコピーのデータ完全性（data integrity）を保持することに関する。
【背景技術】
【０００２】
データセンタは、遠隔通信及びストレージ・システムのような、コンピュータ・システム及びそれらに関連したコンポーネントを収容するために用いられる設備である。ほとんどの大企業は、１つより多いデータセンタを有し、そこでは、膨大な量のデータがストレージ・システム内に格納される。データセンタは、データ、アプリケーション、ウェブ・ホスティング、及びこれらの企業の継続的な活動に不可欠な電子商取引機能を提供する。データセンタは、一般に、冗長電源又はバックアップ電源、冗長データ通信接続、環境制御（例えば、空調設備、消火設備）、及び特別なセキュリティ機器を有する。データセンタは、より優れた障害回復（disaster recovery）及び地理的作業の効率の両方を目的として、異なる地理的位置に分散される。
【０００３】
大部分の企業は、複数のデータセンタを有する。一部の企業は、アクティブ型（active）・データセンタ（即ち、主（primary）データセンタ）内にデータのコピーを有し、データを収納する他のセンタ（即ち、バックアップ・データセンタ）はパッシブ型（passive）のものである、パッシブ−アクティブ型データセンタを用いる。アクティブ型データセンタに災害が起こることは滅多になく、さらにそのバックアップ・データセンタは完全なままであることから、このようなデータセンタの実装は、通常、リソースの無駄である。他の企業は、主データセンタ及びバックアップ・データセンタの両方がアクティブ型のものである、アクティブ−アクティブ型データセンタを用いる。アクティブ−アクティブ型データセンタは、より複雑なものであるが、クライアントへのサービス提供に非常に有効であり、通常の動作のためのサーバの利用を改善する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、アクティブ−アクティブ型データセンタでは、データ完全性を保持し、トランザクション・フローを制御するために、データセンタ間に信頼性のある一定した接続を必要とする。さもなければ、異なるデータセンタにおけるデータは、必要な完全性を有することができず、システム全体が正常に機能しなくなるであろう。さらに、通常、異なるデータセンタが配置された地理的位置にわたって信頼性のある一定した接続を保持するのが非常に困難であるため、アクティブ−アクティブ型データセンタは、現在のところ、厳密なトランザクションを必要としないデータのためだけに、かつ、高価な専用Ｍｅｔｒｏｄネットワーク内で使用されている。
【０００５】
多くの企業は、リソースのより優れた拡張性、より高い信頼性、より効率的な使用のために、アクティブ−アクティブ型データセンタを必要としている。好適なアクティブ−アクティブ型データセンタでは、データの大量のアクティブ複製コピーを処理し、かつ、データセンタのネットワーク、コンピュータ、又はコンポーネントがダウンしたときに、データ完全性及びアクティブ・ロール制御を保持できなくてはならない。
【課題を解決するための手段】
【０００６】
第１の態様によれば、複数のデータサーバから主（primary）データサーバを選択してデータ（a piece of data）を格納し、このデータを複数のデータサーバ内の他のデータサーバに複製することと、カタログ・サーバのクラスタを保持することであって、カタログ・サーバの１つをマスター・カタログ・サーバとして選択する、ことと、データのデータ状態情報をマスター・カタログ・サーバに記録し、このデータ状態情報をカタログ・サーバのクラスタ内の他のカタログ・サーバに複製することと、主データサーバの故障に応答して、複数のデータサーバから新しい主サーバを選択し、カタログ・サーバのクラスタを更新することとを含む、多数のデータセンタにわたって複数のデータサーバ内に格納された、データの複数のコピーのデータ完全性を保持するための方法が提供される。
【０００７】
多数のデータセンタのデータサーバにおいて、データの多数のコピーのデータ完全性を保持するための方法、コンピュータ・プログラム製品及びシステムが提供されることが好ましい。カタログ・サーバのクラスタが保持されることが好ましく、カタログ・サーバのうちの１つをマスター・カタログ・サーバとして選択する。データは、データサーバから選択された主データサーバ内に格納されることが好ましい。データは、データサーバから選択された１つ又は複数のバックアップ・データサーバに複製されることが好ましい。データ状態情報は、マスター・カタログ・サーバに記録されることが好ましい。データ状態情報は、カタログ・サーバのクラスタに複製されることが好ましい。主データサーバが故障したとき、データサーバ及びカタログ・サーバのクラスタが更新されることが好ましい。
【０００８】
第２の態様によれば、多数のデータセンタにわたって複数のデータサーバ内に格納された、データの複数のコピーのデータ完全性を保持するためのコンピュータ・プログラム製品が提供され、このコンピュータ・プログラム製品は、コンピュータ使用可能プログラム・コードがその中で具体化されるコンピュータ使用可能媒体を含み、コンピュータ使用可能プログラム・コードは、複数のデータサーバから主データサーバを選択してデータを格納し、このデータを複数のデータサーバ内の他のデータサーバに複製するための命令と、カタログ・サーバのクラスタを保持するための命令であって、カタログ・サーバの１つをマスター・カタログ・サーバとして選択する、命令と、データのデータ状態情報をマスター・カタログ・サーバに記録し、このデータ状態情報をカタログ・サーバのクラスタ内の他のカタログ・サーバに複製するための命令と、主データサーバの故障に応答して、複数のデータサーバから新しい主サーバを選択し、カタログ・サーバのクラスタを更新するための命令とを含む。
【０００９】
第３の態様によれば、プロセッサと、プロセッサと動作可能に結合されたメモリと、プロセッサ及びメモリと動作可能に結合されたストレージ・デバイスと、多数のデータセンタにわたって複数のデータサーバ内に格納された、データの複数のコピーのデータ完全性を保持するためのコンピュータ・プログラム製品とを含むコンピュータ・システムが提供され、コンピュータ・プログラム製品は、コンピュータ使用可能プログラム・コードがその中で具体化されるコンピュータ使用可能媒体を含み、このコンピュータ使用可能プログラム・コードは、複数のデータサーバから主データサーバを選択してデータを格納し、このデータを複数のデータサーバ内の他のデータサーバに複製するための命令と、カタログ・サーバのクラスタを保持するための命令であって、カタログ・サーバの１つをマスター・カタログ・サーバとして選択する、命令と、データのデータ状態情報をマスター・カタログ・サーバに記録し、このデータ状態情報をカタログ・サーバのクラスタ内の他のカタログ・サーバに複製するための命令と、主データサーバの故障に応答して、複数のデータサーバから新しい主サーバを選択し、カタログ・サーバのクラスタを更新するための命令とを含む。
【００１０】
第４の態様によれば、多数のデータセンタ間にわたる複数のデータサーバ内に格納されるデータの複数のコピーのデータ完全性を保持するためのコンピュータ・システムが提供され、このコンピュータ・システムは、複数のデータセンタの１つが故障したときにもたらされる第１及び第２のネットワーク区画（network partition）を検出して管理するように構成されたネットワーク区画マネージャと、第１及び第２のネットワーク区画の少なくとも１つにおけるデータセンタの機能を制御するように構成されたヘッドマスター・コントローラと、第２のネットワーク区画への全ての書き込みトランザクションを第１のネットワーク区画にリダイレクトするように構成されたルータと、第２のネットワーク区画における選択されたデータサーバをヘッドマスター・コントローラに再接続し、ヘッドマスター・コントローラが、選択されたデータサーバの機能制限を除去できるように構成された修理マネージャと、修理マネージャがヘッドマスター・コントローラへの接続を確立した後で、選択されたデータサーバのステータス及び権限情報を回復するように構成された回復マネージャと、故障状態のデータセンタ内の故障状態のデータサーバを除去し、複数のデータサーバ内の他のデータサーバを再編成するように構成された一時的再編成マネージャと、他のデータサーバの各々のサービス能力に応じて、トラフィックを他のデータサーバにリダイレクトするように構成されたロード及びトラフィック・コントローラと、データセンタ間の接続を監視するように構成されたデータセンタ間接続マネージャとを含む。
【００１１】
ここでは、例として、添付の図面を参照して本発明の好ましい実施形態を説明する。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態の種々のコンポーネントのブロック図である。
【図２】一実施形態に従って、データ完全性及びアクティブ・ロール制御機構がどのように機能するかを示すブロック図である。
【図３】一実施形態に従って、本発明が、多数のデータセンタにおけるデータサーバにわたってデータ完全性をどのように保持するかを示すフローチャートである。
【図４】１つの好ましい実施形態に従って本発明を用いることができるコンピュータ・システムの概念図である。
【発明を実施するための形態】
【００１３】
ここで、添付図面に示される実施形態を参照しながら、本発明を例としてより詳細に説明する。以下に説明される実施形態は、例として提示されるものにすぎず、本発明の概念をいずれかの特定の物理的構成に限定するものとして解釈されるべきではないことに留意すべきである。さらに、用いられる場合、特に明記されない限り、「上側（upper）」、「下側（lower）」、「前部（front）」、「後部（back）」、「上方に（over）」、「下方に（under）」という用語及びこうした類似の用語は、本発明を特定の配向に限定するものとして解釈されるべきではない。代わりに、これらの用語は相対的に用いられるにすぎない。
【００１４】
当業者には認識されるように、本発明は、システム、方法、又はコンピュータ・プログラム製品として具体化することができる。従って、本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロ・コード等を含む）、又はソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態の形式をとることができ、これらは全て、本明細書において、一般的に「回路」、「モジュール」、又は「システム」と呼ぶことができる。さらに、本発明は、コンピュータ使用可能プログラム・コードが媒体内に具体化された、いずれかの有形の媒体内に具体化されたコンピュータ・プログラム製品の形をとることができる。
【００１５】
１つ又は複数のコンピュータ使用可能又はコンピュータ可読媒体のいずれかの組み合わせを用いることもできる。コンピュータ使用可能又はコンピュータ可読媒体は、これらに限られるものではないが、例えば、電子的、磁気的、光学的、電磁気的、赤外線、又は半導体のシステム、装置、デバイス又は伝搬媒体とすることができる。コンピュータ可読媒体のより具体的な例（非網羅的なリスト）は、以下のもの、即ち、１つ又は複数の配線を有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能なプログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、光記憶装置、インターネット又はイントラネットをサポートする伝送媒体、或いは磁気記憶装置を含む。そのプログラムを、例えばその紙又は他の媒体の光学スキャンによって電子的にキャプチャし、次いで、コンパイルし、解釈し、又は必要に応じてそれ以外の適切な方法で処理し、その後、コンピュータ・メモリ内に格納することができるので、コンピュータ使用可能又はコンピュータ可読媒体は、プログラムが印刷された紙又は別の適切な媒体とすることさえできることに留意されたい。本文書との関連において、コンピュータ使用可能又はコンピュータ可読媒体は、命令実行システム、装置、又はデバイスによって使用するため、又はそれらと接続して使用するために、プログラムを収納し、格納し、通信し、伝搬し、又は移送することができるあらゆる媒体とすることができる。コンピュータ使用可能媒体は、コンピュータ使用可能なプログラム・コードがその中で具体化された、ベースバンド内の、又は搬送波の一部としての、伝搬されたデータ信号を含むものとすることができる。コンピュータ使用可能プログラム・コードは、これらに限られるものではないが、無線、有線、光ファイバ・ケーブル、及びＲＦなどを含む、いずれかの適切な媒体を用いて伝送することができる。
【００１６】
本発明の動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（商標）、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等のようなオブジェクト指向プログラミング言語、及び「Ｃ」プログラミング言語又は同様なプログラミング言語のような、従来の手続き型プログラミング言語を含む、１つ又は複数のプログラミング言語の任意の組み合わせで記述することができる。（Ｊａｖａ並びに全てのＪａｖａベースの商標及びロゴは、合衆国、他の国々、又はその両方におけるＳｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ，Ｉｎｃ．社の商標である。）プログラム・コードは、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立したソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部がリモート・コンピュータ上で実行される場合もあり、又は完全にリモート・コンピュータ若しくはサーバ上で実行される場合もある。一番最後のシナリオの場合、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部のコンピュータへの接続がなされる場合もある（例えば、インターネット・サービス・プロバイダを用いてインターネットを通じて）。
【００１７】
本発明の実施形態による方法、装置（システム）及びコンピュータ・プログラム製品のフローチャート図及び／又はブロック図を参照して、本発明を下記に説明する。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図内のブロックの組み合わせは、コンピュータ・プログラム命令によって実施することができることが理解されるであろう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えて機械を製造し、その結果、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／行為を実施するための手段を作り出すようにさせることができる。
【００１８】
これらのコンピュータ・プログラム命令を、コンピュータ又は他のプログラム可能データ処理装置を特定の方法で機能させるように指示することができるコンピュータ可読媒体内に格納し、その結果、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／行為を実施する命令手段を含む物品を製造するようにさせることもできる。
【００１９】
コンピュータ・プログラム命令をコンピュータ又は他のプログラム可能データ処理装置上にロードして、一連の動作ステップをコンピュータ又は他のプログラム可能装置上で実行させ、コンピュータ又は他のプログラム可能装置上で実行される命令がフローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／行為を実施するためのプロセスを提供するように、コンピュータにより実施されるプロセスを生成することもできる。
【００２０】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート及びブロック図内の各ブロックは、指定された論理機能を実装するための１つ又は複数の実行可能な命令を含む、モジュール、セグメント、又はコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に記された機能は、図面に記された順序とは異なる順序で行なわれることもあることにも留意すべきである。例えば、連続して図示された２つのブロックが、実際には実質的に同時に実行されることもあり、又はこれらのブロックは、関与する機能に応じて、ときには逆順で実行されることもある。ブロック図及び／又はフローチャート図の各ブロック、並びにブロック図及び／又はフローチャート図内のブロックの組み合わせは、指定された機能又は行為を実行する専用ハードウェア・ベースのシステム、又は専用ハードウェアとコンピュータ命令との組み合わせによって実装することができることにも留意されたい。
【００２１】
本発明は、好ましくは、無駄なデータのコピーが存在せず、多くのデータのコピーが、同時にクライアントの役に立つことができるアクティブ−アクティブ型データセンタを可能にする。従って、本発明は、好ましくは、データセンタ内のサーバ又は機械の利用度及び拡張性を高め、ユーザからのサービス要求に対する応答時間を低減させる。
【００２２】
本発明の一実施形態において、その１つがマスター・カタログ・サーバであるカタログ・サーバのクラスタを用いて、データの状態情報を格納し、それらは、複数の地理的位置にわたるデータセンタ内の他の多くのサーバにも複製される。各データ（例えば、データ・テーブル）は、リーダーとしても知られるその主サーバ、及び多くの（例えば、何千もの）複製サーバ内に格納される。主サーバが故障すると、データ複製サーバの１つが、新しい主サーバとして選択される。どのサーバも、何らかのデータの主サーバ及び他のデータの複製サーバであることができ、従って、全てのサーバの作業負荷及び役割（roll）のバランスをとることができる。リーダー選択機構は、データに対していつでも唯一のリーダーを選択することが可能である。古いリーダーが故障すると、直ちに新しいリーダーが選択される。新しいリーダーの状態情報は、マスター・カタログ・サーバに登録され、カタログ・サーバのクラスタに複製される。サーバの役割によって決まるデータ・コンテキスト認識（data-context-aware）経路指定及び転送システムを用いて、あらゆるサービス要求が、正しい役割（即ち、プライマリ又はレプリケーション）をもった正確なデータを有する最も近いサーバに経路指定されることを保証する。
【００２３】
図１に示すような、本発明の一実施形態において、８個のコンポーネント、即ち、ネットワーク区画マネージャ１０１、ヘッドマスター・コントローラ１０２、ルータ１０３、修理マネージャ１０４、回復マネージャ１０５、一時的再編成マネージャ１０６、ロード及びトラフィック・コントローラ１０７、並びにデータセンタ間接続マネージャ１０８がある。ネットワーク区画マネージャ１０１は、切断されたネットワークを検出して管理し、ネットワークの切断が検出されると、措置を開始する。
【００２４】
ヘッドマスター・コントローラ１０２は、ネットワーク区画マネージャ１０１をリッスンし、ネットワークが切断されたときに実行されるデータセンタの機能を制御する。例えば、データセンタが、異常検知（malfunctioning)コンポーネントによってマジョリティ・グループとマイノリティ・グループに分けられる場合、全ての非ダーティ・リード（no-dirty read）を保持する間、マイノリティ・データセンタ・グループは、いずれのトランザクションもコミットすることができない（即ち、トランザクション・コミット権限が除去される）。
【００２５】
ルータ１０３は、全ての書き込みトランザクションをマジョリティ・データセンタ・グループにリダイレクトし、ダーティ・レコードをコンパイルする。
【００２６】
修理マネージャ１０４は、切断されたマイノリティ・データセンタの各サーバにおいてスレッドをスピンさせ、予定通りに（例えば、最初の１０分間は１０秒ごと、最初の１０分以降は１分間隔で）、区画化されたヘッドマスター・コントローラに常に接続しようと試みるので、ヘッドマスター・コントローラは、サーバ機能（例えば、書き込みトランザクションのコミット）の制限を解除することができる。
【００２７】
修理マネージャがヘッドマスター・コントローラへの接続を確立すると、回復マネージャ１０５が、サーバの全てのステータス及び権限を回復させる。
【００２８】
一時的再編成マネージャ１０６は、各グループの各リーダーのピングを実行する（ネットワークの接続を確認する。リーダーに連絡可能でない場合、次に、一時的再編成マネージャ１０６は、この連絡不能なリーダーが管理する全てのサーバを抽出する。次に、一時的再編成マネージャ１０６は、連絡不能なリーダーの各メンバーのピングを実行し、連絡可能でないサーバを一時的に除去する。
【００２９】
ロード及びトラフィック・コントローラ１０７が、それらのサービス能力に応じて、切断されたデータセンタに対するトラフィックを他のデータセンタにリダイレクトする。
【００３０】
データセンタ間接続マネージャ１０８は、データセンタ間の接続を監視する。
【００３１】
本発明は、複数のデータセンタにわたって大量のアクティブな複製コピーを保持するアクティブ−アクティブ型データセンタを可能にすることが好ましい。例えば、５０００のアクティブな複製が、データセンタ内に同時に存在することがある。データ完全性及びアクティブ・ロール制御機構が実装され、これらの大量のアクティブな複製コピーが保持され、適切に更新されることを保証する。
【００３２】
図２は、本発明の一実施形態における、データ完全性及びアクティブ・ロール制御機構がどのように機能するかを示すブロック図である。典型的な作業モードにおいて、データセンタ間接続マネージャ１０８は、データセンタ間の接続を監視し（状態２０１）、ネットワーク区画マネージャ１０１は、起こり得る異常についてネットワークをアクティブに監視する（状態２０２）。例えば、機械がダウンするか、又はネットワークの一部が適切に働かない場合など、データセンタのコンポーネントが正常に機能しない場合、ネットワーク区画マネージャ１０１は、残りのデータセンタからの切断されたデータセンタの異常コンポーネントを管理し（状態２０３）、異常コンポーネントを修理するための措置を開始する（状態２０４）。異常コンポーネントは、データセンタを２つの部分、即ち、データセンタにおけるサーバのマイノリティ・グループとマジョリティ・グループとに分けることができる。修理モードにおいて、ヘッドマスター・コントローラ１０２は、ネットワーク区画マネージャ１０１から異常情報を受け取り、マイノリティ・グループの機能を制御する（状態２０５）。例えば、ヘッドマスター・コントローラ１０２は、マイノリティ・グループ内のデータセンタのトランザクション・コミット権限を取り消すことができる。次に、データサーバのマイノリティ・グループからの全ての書き込みトランザクションが、ルータ１０３によりリダイレクトされる（状態２０６）。ルータ１０３はまた、ダーティ・レコードもコンパイルし、これにより、マイノリティ・グループ内に書き込まれたデータの情報が保持される（状態２０７）。次に、修理マネージャ１０４は、マイノリティ・グループ内のサーバをヘッドマスター・コントローラ１０２に接続して、異常サーバを識別し、これをデータセンタから除去しようと試みる（状態２０８）。サーバとヘッドマスター・コントローラ１０２との間に接続が確立されると、回復マネージャ１０５により、サーバについての全てのステータス及び権限が回復される（状態２０９）。次に、一時的再編成マネージャ１０６が、各グループの各リーダーのピングを実行する（状態２１０）。リーダーに連絡可能でない場合、この連絡不能なリーダーが管理する全てのサーバが抽出される。次に、一時的再編成マネージャ１０６は、連絡不能なリーダーの各メンバーのピングを実行し、連絡可能でないサーバを一時的に除去する。マジョリティ・グループ内の他のデータセンタにアクセスしているトランザクションがある場合、ロード及びトラフィック・コントローラ１０７が、それらのサービス能力に応じて、トラフィックをそれぞれのデータセンタにリダイレクトする（状態２１１）。
【００３３】
図３は、本発明が、一実施形態において、多数のデータセンタ内のデータサーバにわたってデータ完全性をどのように保持するかを示すフローチャートである。状態３０１において、カタログ・サーバのクラスタを保持して、データの情報をデータサーバ上に保持し、カタログ・サーバの１つを、マスター・カタログ・サーバとして選択する。選択されたデータに対して、主データサーバが選択される。異なるデータに対して、異なる主データサーバを選択することができる（状態３０２）。次に、このデータは、データサーバから選択された１つ又は複数のバックアップ・データサーバに複製される。状態３０３において、データ状態情報がマスター・カタログ・サーバに記録され、次に、カタログ・サーバのクラスタに複製される。主データサーバが故障した場合、状態３０４において、データサーバ及びカタログ・サーバのクラスタを有効に更新することができる。更新プロセスは、３つのステップを含む。第１に、データに対して、新しい主データサーバを選択し（状態３１１）、この主データサーバの情報をマスター・カタログ・サーバに登録し（状態３１２）、次に、登録情報を１つ又は複数の他のカタログ・サーバに複製する（３１３）。
【００３４】
図４は、本発明を実施することができるコンピュータ・システム（４０２）を示す。このコンピュータ・システムは、パーソナル・コンピュータ・システム、ワークステーション・コンピュータ・システム、ラップトップ・コンピュータ・システム、埋込式コントローラ・システム、マイクロプロセッサ・ベースのシステム、デジタル信号プロセッサ・ベースのシステム、ハンドヘルド装置システム、携帯情報端末（ＰＤＡ）システム、無線システム、無線ネットワーキング・システム等のいずれか１つとすることができる。コンピュータ・システムは、バス（４０４）又は情報を通信するための他の通信機構と、情報を処理するためにバス（４０４）と結合されたプロセッサ（４０６）とを含む。コンピュータ・システムはまた、情報及びプロセッサ（４０６）により実行される命令を格納するための、バスに結合された、ランダム・アクセス・メモリ（ＲＡＭ）又は他の動的記憶装置（例えば、ダイナミックＲＡＭ（ＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、フラッシュＲＡＭ）のようなメイン・メモリも含む。さらに、プロセッサによって実行される命令の実行中、メイン・メモリ（４０８）を一時変数又は他の中間情報を格納するために用いることができる。コンピュータ・システムは、静的情報及びプロセッサのための命令を格納するために、バス（４０４）に結合された読み出し専用メモリＲＯＭ（４１０）又は他の静的記憶装置（例えば、プログラム可能ＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）及び電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ））をさらに含む。情報及び命令を格納するために、磁気ディスク又は光ディスクのようなストレージ・デバイス（４１２）が設けられ、バスに結合される。このストレージ・デバイスは、コンピュータ可読媒体の一例である。
【００３５】
コンピュータ・システムはまた、コンピュータ・システムを結合するために信号を入力するための入力／出力ポート（４３０）も含む。こうした結合は、自動制御機能、遠隔制御機能等を実装するための、直接電気接続、無線接続、ネットワーク接続等を含むことができる。適切なインターフェース・カードをインストールして、必要な機能及び信号レベルを与えることができる。
【００３６】
コンピュータ・システムはまた、専用の論理装置（例えば、特定用途向け集積回路（ＡＳＩＣ））又は構成可能な論理装置（例えば、ｇｅｎｅｒｉｃ  ａｒｒａｙ  ｏｆ  ｌｏｇｉｃ（ＧＡＬ）又は再プログラム可能フィールド・プログラム可能ゲート・アレイ（ＦＰＧＡ））を含むこともでき、これらは、図１−図３を参照して説明されるような方法のいずれかの部分又は全ての機能を置き換えるために用いることができる。適切な装置バス（例えば、小型コンピュータ・システム・インターフェース（ＳＣＳＩ）バス、ｅｎｈａｎｃｅｄ  ｉｎｔｅｇｒａｔｅｄ  ｄｅｖｉｃｅ  ｅｌｅｃｔｒｏｎｉｃｓ（ＩＤＥ）バス、若しくはＵｌｔｒａ−ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ（ＤＭＡ）バス）を用いて、他の取り外し可能な媒体装置（例えば、コンパクト・ディスク、テープ及び取り外し可能な磁気光学媒体）又は固定された高密度媒体装置をコンピュータ・システムに付加することができる。コンピュータ・システムは、付加的に、コンパクト・ディスク・リーダー、コンパクト・ディスク・リーダー−ライター・ユニット、又はコンパクト・ディスク・ジュークボックスを含むことができ、その各々を同じ装置バス又は別の装置バスに接続することができる。
【００３７】
コンピュータのユーザに情報を表示及び／又は提供するために、バスを介して、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、音声合成ハードウェア及び／又はソフトウェア等のようなディスプレイ（４１４）にコンピュータ・システムを結合させることができる。ディスプレイは、ディスプレイ・カード又はグラフィックス・カードにより制御することができる。コンピュータ・システムは、情報及びコマンド選択をプロセッサ（４０６）に通信するための、キーボード（４１６）及びカーソル制御（４１８）のような入力装置を含む。こうしたコマンド選択は、入力装置（４１６）として機能する音声認識ハードウェア及び／又はソフトウェアによって実施することができる。カーソル制御（４１８）は、指示情報及びコマンド選択をプロセッサ（４０６）に通信し、かつ、ディスプレイ（４１４）上のカーソルの動きを制御するための、例えば、マウス、トラックボール、カーソル指示キー、タッチスクリーン・ディスプレイ、光学式文字認識ハードウェア及び／又はソフトウェア等である。さらに、プリンタ（図示せず）は、データ構造、情報等の印刷リスト、又は、コンピュータ・システムが格納及び／又は生成する他のいずれかのデータを提供することができる。
【００３８】
コンピュータ・システムは、プロセッサが、メイン・メモリのようなメモリ内に含まれる１つ又は複数の命令の１つ又は複数のシーケンスを実行するのに応答して、本発明の処理ステップの一部又は全てを実行する。こうした命令は、ストレージ・デバイスのような別のコンピュータ可読媒体からメイン・メモリ内に読み取ることができる。多重処理構成の１つ又は複数のプロセッサを用いて、メイン・メモリ内に含まれた命令のシーケンスを実行することもできる。代替的な実施形態においては、ソフトウェア命令の代わりに又はこれと組み合わせて、配線接続回路を用いることもできる。従って、実施形態は、ハードウェア回路及びソフトウェアのいずれかの特定の組み合わせに制限されるものではない。
【００３９】
本発明のコンピュータ・コード装置は、これらに限定されるものではないが、スクリプト、インタプリタ、動的リンク・ライブラリ、Ｊａｖａクラス及び完全な実行可能プログラムを含む、いずれかの解釈実行型の又は実行可能なコード機構とすることができる。さらに、より優れた性能、信頼性及び／又はコストのために、本発明の処理の一部を分散させることができる。コンピュータ・システムはまた、バスに結合された通信インターフェースも含む。通信インターフェース（４２０）は、例えばローカル・ネットワーク（４２４）に接続することができるネットワーク・リンク（４２２）に結合する双方向データ通信を提供する。例えば、通信インターフェース（４２０）は、いずれかのパケット交換方式のローカル・エリア・ネットワーク（ＬＡＮ）に接続するためのネットワーク・インターフェース・カードとすることができる。別の例として、通信インターフェース（４２０）は、非対称デジタル加入者線（ＡＤＳＬ）カード、総合サービス・デジタル網（ＩＳＤＮ）カード、又は対応するタイプの電話線へのデータ通信接続を提供するためのモデムとすることができる。通信インターフェース（４２０）を介して、無線リンクを実装することもできる。こうしたいずれの実装においても、通信インターフェース（４２０）は、様々なタイプの情報を表すデジタル・データ・ストリームを伝える電気信号、電磁信号又は光信号を送受信する。
【００４０】
ネットワーク・リンク（４２２）は、典型的には、１つ又は複数のネットワークを通じて他のデータ装置へのデータ通信を提供するものである。例えば、ネットワーク・リンクは、ローカル・ネットワーク（４２４）（例えば、ＬＡＮ）を通して、又は、通信ネットワーク（４２８）を通して通信サービスを提供するサービス提供者により動作される機器を通して、コンピュータ（４２６）への接続を提供することができる。好ましい実施形態において、ローカル・ネットワーク及び通信ネットワークは、デジタル・データ・ストリームを搬送する電気信号、電磁信号又は光信号を用いることが好ましい。コンピュータ・システムとの間でデジタル・データを搬送する、種々のネットワークを通る信号並びにネットワーク・リンク上の信号及び通信インターフェースを通る信号は、情報を運ぶ搬送波の例示的な形態である。コンピュータ・システムは、ネットワーク、ネットワーク・リンク及び通信インターフェースを通して、通知を伝送し、プログラム・コードを含むデータを受信することができる。
【００４１】
本発明は、上記に示され説明された特定のプロセス、構成、材料及びコンポーネントに必ずしも限定されるものではなく、本発明の範囲内の多数の変形をなし得ることを理解すべきである。
【図１】
2011530127.tif 000003
【図２】
2011530127.tif 000004
【図３】
2011530127.tif 000005
【図４】
2011530127.tif 000006
【手続補正書】
【提出日】平成23年2月28日(2011.2.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のデータセンタにわたって複数のデータサーバ内に格納された、データの複数のコピーのデータ完全性を保持する方法であって、
前記複数のデータサーバから主データサーバを選択して前記データを格納し、前記データを前記複数のデータサーバ内の他のデータサーバに複製することと、
カタログ・サーバのクラスタを保持することであって、前記カタログ・サーバの１つをマスター・カタログ・サーバとして選択する、ことと、
前記データのデータ状態情報を前記マスター・カタログ・サーバに記録し、前記データ状態情報を前記カタログ・サーバのクラスタ内の他のカタログ・サーバに複製することと、
前記主データサーバの故障に応答して、前記複数のデータサーバから新しい主データサーバを選択し、前記カタログ・サーバのクラスタを更新することと、
を含む方法であって、前記更新することは、
前記新しい主データサーバを含む新しいデータ状態情報を前記マスター・カタログ・サーバに登録することと、
前記新しいデータ状態情報を前記カタログ・サーバのクラスタ内の他のカタログ・サーバに複製することと、
を含む、方法。
【請求項２】
前記新しい主データサーバを選択する前に、前記故障状態の主データサーバによって切断されたデータサーバのマジョリティ・グループ及びマイノリティ・グループを管理することと、
前記マイノリティ・グループ内のデータサーバの機能を制御することと、
前記データサーバのマイノリティ・グループにおいてデータのダーティ・レコードをコンパイルすることと、
前記マイノリティ・グループ内の各サーバをヘッドマスター・コントローラに接続しようと試みることによって、前記故障状態の主データサーバを除去することと、
前記ヘッドマスター・コントローラに接続された前記データサーバを再編成することと、
をさらに含む、請求項１に記載の方法。
【請求項３】
ユーザからのサービス要求を、前記複数のデータサーバ内の最も近いデータサーバに経路指定することをさらに含む、請求項１または請求項２のいずれかに記載の方法。
【請求項４】
プロセッサと、
前記プロセッサと動作可能に結合されたメモリと、
前記プロセッサ及び前記メモリと動作可能に結合されたストレージ・デバイスと、
多数のデータセンタにわたって複数のデータサーバ内に格納された、データの複数のコピーのデータ完全性を保持するためのコンピュータ・プログラムと、
を含み、前記コンピュータ・プログラムは、
前記複数のデータサーバから主データサーバを選択して前記データを格納し、前記データを前記複数のデータサーバ内の他のデータサーバに複製するための命令と、
カタログ・サーバのクラスタを保持するための命令であって、前記カタログ・サーバの１つをマスター・カタログ・サーバとして選択する、命令と、
前記データのデータ状態情報を前記マスター・カタログ・サーバに記録し、前記データ状態情報を前記カタログ・サーバのクラスタ内の他のカタログ・サーバに複製するための命令と、
前記主データサーバの故障に応答して、前記複数のデータサーバから新しい主データサーバを選択し、前記カタログ・サーバのクラスタを更新するための命令と、
を含むコンピュータ・システムであって、前記更新するための命令は、
前記新しい主データサーバを含む新しいデータ状態情報を前記マスター・カタログ・サーバに登録するための命令と、
前記新しいデータ状態情報を前記カタログ・サーバのクラスタ内の他のカタログ・サーバに複製するための命令と、
を含む、コンピュータ・システム。
【請求項５】
前記新しい主データサーバを選択するための命令の前に、前記故障状態の主データサーバによって切断されたデータサーバのマジョリティ・グループ及びマイノリティ・グループを管理するための命令と、
前記マイノリティ・グループ内のデータサーバの機能を制御するための命令と、
前記データサーバのマイノリティ・グループにおいて、データのダーティ・レコードをコンパイルするための命令と、
前記マイノリティ・グループ内の各サーバをヘッドマスター・コントローラに接続しようと試みることによって、前記故障状態の主データサーバを除去するための命令と、
前記ヘッドマスター・コントローラに接続された前記データサーバを再編成するための命令と、
をさらに含む、請求項４に記載のコンピュータ・システム。
【請求項６】
ユーザからのサービス要求を、前記複数のデータサーバ内の最も近いデータサーバに経路指定するための命令をさらに含む、請求項４または請求項５のいずれかに記載のコンピュータ・システム。
【請求項７】
前記複数のデータセンタの１つが故障したときにもたらされる第１及び第２のネットワーク区画を検出して管理するように構成されたネットワーク区画マネージャと、
前記第１及び第２のネットワーク区画の少なくとも１つにおけるデータセンタの機能を制御するように構成されたヘッドマスター・コントローラと、
前記第２のネットワーク区画への全ての書き込みトランザクションを前記第１のネットワーク区画にリダイレクトするように構成されたルータと、
前記第２のネットワーク区画における選択されたデータサーバを前記ヘッドマスター・コントローラに再接続し、前記ヘッドマスター・コントローラが、前記選択されたデータサーバの機能制限を除去できるように構成された修理マネージャと、
前記修理マネージャが前記ヘッドマスター・コントローラへの接続を確立した後、前記選択されたデータサーバのステータス及び権限情報を回復させるように構成された回復マネージャと、
前記故障状態のデータセンタ内の故障状態のデータサーバを除去し、前記複数のデータサーバ内の他のデータサーバを再編成するように構成された一時的再編成マネージャと、
前記他のデータサーバの各々のサービス能力に応じて、トラフィックを前記他のデータサーバにリダイレクトするように構成されたロード及びトラフィック・コントローラと、
前記データセンタ間の接続を監視するように構成されたデータセンタ間接続マネージャと、
を含む、請求項４に記載のコンピュータ・システム。
【請求項８】
前記第１のネットワーク区画は、前記第２のネットワーク区画よりも多くのデータセンタを含む、請求項７に記載のコンピュータ・システム。
【請求項９】
前記機能は、選択されたネットワーク区画におけるデータセンタのトランザクション・コミット権限を除去することと、前記選択されたネットワーク区画に対して非ダーティ・リードを保持することとを含む、請求項７又は請求項８に記載のコンピュータ・システム。
【請求項１０】
前記選択されたネットワーク区画は、データセンタの数が他方のものよりも少ない、前記第１のネットワーク区画及び前記第２のネットワーク区画のうちの一方である、請求項９に記載のコンピュータ・システム。
【請求項１１】
前記ルータはまた、ダーティ・レコードをコンパイルするように構成される、請求項７から請求項１０までのいずれかに記載のコンピュータ・システム。
【請求項１２】
前記修理マネージャは、予め設定されたスケジュールに従って、前記区画化されたヘッドマスター・コントローラに常に接続しようと試みる、請求項７から請求項１１までのいずれかに記載のコンピュータ・システム。
【請求項１３】
コンピュータ上で実行されたときに、請求項１から請求項３までのいずれかに記載の方法の全てのステップを実行するコンピュータ・プログラム。
【手続補正書】
【提出日】平成23年7月4日(2011.7.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のデータセンタにわたって複数のデータサーバ内に格納された、データの複数のコピーのデータ完全性を保持する方法であって、
前記複数のデータサーバから主データサーバを選択して前記データを格納し、前記データを前記複数のデータサーバ内の他のデータサーバに複製することと、
前記カタログ・サーバのクラスタを保持することであって、前記カタログ・サーバの１つをマスター・カタログ・サーバとして選択する、ことと、
前記データのデータ状態情報を前記マスター・カタログ・サーバに記録し、前記データ状態情報を前記カタログ・サーバのクラスタ内の他のカタログ・サーバに複製することと、
前記主データサーバの故障に応答して、前記複数のデータサーバから新しい主サーバを選択し、前記カタログ・サーバのクラスタを更新することと、
を含む方法。
【請求項２】
前記更新することは、
前記新しい主データサーバを含む新しいデータ状態情報を前記マスター・カタログ・サーバに登録することと、
前記新しいデータ状態情報を前記カタログ・サーバのクラスタ内の他のカタログ・サーバに複製することと、
を含む、請求項１に記載の方法。
【請求項３】
前記新しい主データサーバを選択する前に、前記故障状態の主データサーバによって切断されたデータサーバのマジョリティ・グループ及びマイノリティ・グループを管理することと、
前記マイノリティ・グループ内のデータサーバの機能を制御することと、
前記データサーバのマイノリティ・グループにおいてデータのダーティ・レコードをコンパイルすることと、
前記マイノリティ・グループ内の各サーバをヘッドマスター・コントローラに接続しようと試みることによって、前記故障状態の主データサーバを除去することと、
前記ヘッドマスター・コントローラに接続された前記データサーバを再編成することと、
をさらに含む、請求項２に記載の方法。
【請求項４】
ユーザからのサービス要求を、前記複数のデータサーバ内の最も近いデータサーバに経路指定することをさらに含む、請求項１から請求項３までのいずれかに記載の方法。
【請求項５】
多数のデータセンタにわたって複数のデータサーバ内に格納された、データの複数のコピーのデータ完全性を保持するためのコンピュータ・プログラムであって、前記コンピュータ・プログラムは、
コンピュータに、
前記複数のデータサーバから主データサーバを選択して前記データを格納し、前記データを前記複数のデータサーバ内の他のデータサーバに複製させるための命令と、
前記カタログ・サーバのクラスタを保持するための命令であって、前記カタログ・サーバの１つをマスター・カタログ・サーバとして選択させる、命令と、
前記データのデータ状態情報を前記マスター・カタログ・サーバに記録し、前記データ状態情報を前記カタログ・サーバのクラスタ内の他のカタログ・サーバに複製させるための命令と、
前記主データサーバの故障に応答して、前記複数のデータサーバから新しい主サーバを選択し、前記カタログ・サーバのクラスタを更新させるための命令と、
を含むコンピュータ・プログラム。
【請求項６】
前記更新させるための命令は、
前記新しい主データサーバを含む新しいデータ状態情報を前記マスター・カタログ・サーバに登録させるための命令と、
前記新しいデータ状態情報を前記カタログ・サーバのクラスタ内の他のカタログ・サーバに複製させるための命令と、
を含む、請求項５に記載のコンピュータ・プログラム。
【請求項７】
前記新しい主データサーバを選択させるための命令の前に、前記故障状態の主データサーバにより切断されたデータサーバのマジョリティ・グループ及びマイノリティ・グループを管理させるための命令と、
前記マイノリティ・グループ内のデータサーバの機能を制御させるための命令と、
前記データサーバのマイノリティ・グループにおいてデータのダーティ・レコードをコンパイルさせるための命令と、
前記マイノリティ・グループ内の各サーバをヘッドマスター・コントローラに接続しようと試みることによって、前記故障状態の主データサーバを除去させるための命令と、
前記ヘッドマスター・コントローラに接続された前記データサーバを再編成させるための命令と、
をさらに含む、請求項６に記載のコンピュータ・プログラム。
【請求項８】
ユーザからのサービス要求を、前記複数のデータサーバ内の最も近いデータサーバに経路指定させるための命令をさらに含む、請求項５から請求項７までのいずれかに記載のコンピュータ・プログラム。
【請求項９】
プロセッサと、
前記プロセッサと動作可能に結合されたメモリと、
前記プロセッサ及び前記メモリと動作可能に結合されたストレージ・デバイスと、
多数のデータセンタにわたって複数のデータサーバ内に格納された、データの複数のコピーのデータ完全性を保持するためのコンピュータ・プログラム製品と、
を含み、前記コンピュータ・プログラム製品は、
コンピュータ使用可能プログラム・コードがその中で具体化されたコンピュータ使用可能媒体を含み、前記コンピュータ使用可能プログラム・コードは、
前記複数のデータサーバから主データサーバを選択して前記データを格納し、前記データを前記複数のデータサーバ内の他のデータサーバに複製するための命令と、
前記カタログ・サーバのクラスタを保持するための命令であって、前記カタログ・サーバの１つをマスター・カタログ・サーバとして選択する、命令と、
前記データのデータ状態情報を前記マスター・カタログ・サーバに記録し、前記データ状態情報を前記カタログ・サーバのクラスタ内の他のカタログ・サーバに複製するための命令と、
前記主データサーバの故障に応答して、前記複数のデータサーバから新しい主サーバを選択し、前記カタログ・サーバのクラスタを更新するための命令と、
を含むコンピュータ・システム。
【請求項１０】
前記更新するための命令は、
前記新しい主データサーバを含む新しいデータ状態情報を前記マスター・カタログ・サーバに登録するための命令と、
前記新しいデータ状態情報を前記カタログ・サーバのクラスタ内の他のカタログ・サーバに複製するための命令と、
を含む、請求項９に記載のコンピュータ・システム。
【請求項１１】
前記新しい主データサーバを選択するための命令の前に、前記故障状態の主データサーバによって切断されたデータサーバのマジョリティ・グループ及びマイノリティ・グループを管理するための命令と、
前記マイノリティ・グループ内のデータサーバの機能を制御するための命令と、
前記データサーバのマイノリティ・グループにおいて、データのダーティ・レコードをコンパイルするための命令と、
前記マイノリティ・グループ内の各サーバをヘッドマスター・コントローラに接続しようと試みることによって、前記故障状態の主データサーバを除去するための命令と、
前記ヘッドマスター・コントローラに接続された前記データサーバを再編成するための命令と、
をさらに含む、請求項１０に記載のコンピュータ・システム。
【請求項１２】
ユーザからのサービス要求を、前記複数のデータサーバ内の最も近いデータサーバに経路指定するための命令をさらに含む、請求項９から請求項１１までのいずれかに記載のコンピュータ・システム。
【請求項１３】
前記複数のデータセンタの１つが故障したときにもたらされる第１及び第２のネットワーク区画を検出して管理するように構成されたネットワーク区画マネージャと、
前記第１及び第２のネットワーク区画の少なくとも１つにおけるデータセンタの機能を制御するように構成されたヘッドマスター・コントローラと、
前記第２のネットワーク区画への全ての書き込みトランザクションを前記第１のネットワーク区画にリダイレクトするように構成されたルータと、
前記第２のネットワーク区画における選択されたデータサーバを前記ヘッドマスター・コントローラに再接続し、前記ヘッドマスター・コントローラが、前記選択されたデータサーバの機能制限を除去できるように構成された修理マネージャと、
前記修理マネージャが前記ヘッドマスター・コントローラへの接続を確立した後、前記選択されたデータサーバのステータス及び権限情報を回復させるように構成された回復マネージャと、
前記故障状態のデータセンタ内の故障状態のデータサーバを除去し、前記複数のデータサーバ内の他のデータサーバを再編成するように構成された一時的再編成マネージャと、
前記他のデータサーバの各々のサービス能力に応じて、トラフィックを前記他のデータサーバにリダイレクトするように構成されたロード及びトラフィック・コントローラと、
前記データセンタ間の接続を監視するように構成されたデータセンタ間接続マネージャと、
を含む、請求項９に記載のコンピュータ・システム。
【請求項１４】
前記第１のネットワーク区画は、前記第２のネットワーク区画よりも多くのデータセンタを含む、請求項１３に記載のコンピュータ・システム。
【請求項１５】
前記機能は、選択されたネットワーク区画におけるデータセンタのトランザクション・コミット権限を除去することと、前記選択されたネットワーク区画に対して非ダーティ・リードを保持することとを含む、請求項１３又は請求項１４に記載のコンピュータ・システム。
【請求項１６】
前記選択されたネットワーク区画は、データセンタの数が他方のものよりも少ない、前記第１のネットワーク区画及び前記第２のネットワーク区画のうちの一方である、請求項１５に記載のコンピュータ・システム。
【請求項１７】
前記ルータはまた、ダーティ・レコードをコンパイルするように構成される、請求項１３から請求項１６までのいずれかに記載のコンピュータ・システム。
【請求項１８】
前記修理マネージャは、予め設定されたスケジュールに従って、前記区画化されたヘッドマスター・コントローラに常に接続しようと試みる、請求項１３から請求項１７までのいずれかに記載のコンピュータ・システム。
【請求項１９】
コンピュータ上で実行されたときに、請求項１から請求項４までのいずれかに記載の方法の全てのステップを実行するコンピュータ・プログラム。
【国際調査報告】
2011530127.tif 000007
2011530127.tif 000008
2011530127.tif 000009
2011530127.tif 000010