(57)【特許請求の範囲】
【請求項１】
分散データグリッドにおいて永続性をサポートするための方法であって、
前記分散データグリッドにおける複数のメンバーが、永続ストレージにおいて１つ以上のキャッシュサービスに関連付けられる複数のパーティションを永続化することを可能にするステップと、
コーディネータが、前記分散データグリッドにおける前記複数のメンバーの間でパーティションオーナーシップのビューを同期するステップと、
同期された前記ビューに基づいて、前記コーディネータが、どのパーティションが前記分散データグリッドにおけるどのメンバーからリカバリされるかについての分散コンセンサスを形成するステップとを含む、方法。
【請求項２】
前記永続ストレージに複数の分散ローカルディスクを含むステップをさらに含み、前記分散データグリッドにおける各メンバーは、前記分散ローカルディスクのうちの１つ以上に対するビジビリティのみを有する、請求項１に記載の方法。
【請求項３】
前記コーディネータは、前記分散データグリッドにおけるメンバーである、請求項１または２に記載の方法。
【請求項４】
前記分散データグリッドにおける前記複数のメンバーから前記コーディネータが、前記複数の永続化されたパーティションについての情報を受け取るステップをさらに含む、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
すべての永続化されたパーティションがリカバリに先立って可視であることを保証するためにリカバリクォーラムを使用するステップをさらに含む、請求項１〜４のいずれか１項に記載の方法。
【請求項６】
前記永続ストレージにおいて１つ以上のストレージエリアネットワーク（ＳＡＮ）を含んでおり、前記１つ以上のＳＡＮは、
前記分散データグリッドにおいて複数のメンバーによって共有されること、
複数のストレージ位置にて複数のメンバーによって共有されること、および、
１つ以上のローカルディスクを有するハイブリッドな展開において複数のメンバーによって共有されること、のうち少なくともいずれかである、請求項１〜５のいずれか１項に記載の方法。
【請求項７】
前記分散コンセンサスに基づいて、前記分散データグリッドにおいて各メンバーについてパーティションリカバリ割当を決定するステップと、
前記パーティションリカバリ割当を決定するためにプラガブルパーティション割当ストラテジーを使用するステップと、
前記分散データグリッドにおいて各メンバーに前記パーティションリカバリ割当を提供するステップと、
前記分散データグリッドに関連付けられる前記永続ストレージから１つ以上のパーティションを前記各メンバーが、受け取るステップとをさらに含む、請求項１〜６のいずれか１項に記載の方法。
【請求項８】
コンピュータシステムによって実行されると、前記コンピュータシステムに請求項１〜７のいずれか１項に記載の方法を実行させる、マシン読み取り可能な形式のプログラム命令を含むコンピュータプログラム。
【請求項９】
分散データグリッドにおいて永続性をサポートするためのシステムであって、
１つ以上のマイクロプロセッサと、
前記１つ以上のマイクロプロセッサ上で実行される分散データグリッドとを含み、前記分散データグリッドは、１つ以上のコミュニケーションチャンネルに相互接続される複数のサーバノードを含み、
前記分散データグリッドは、
前記分散データグリッドにおける複数のメンバーが、永続ストレージにおいて１つ以上のキャッシュサービスに関連付けられる複数のパーティションを永続化することを可能にすることと、
コーディネータが、前記分散データグリッドにおける前記複数のメンバーの間でパーティションオーナーシップのビューを同期することと、
同期された前記ビューに基づいて、どのパーティションが前記分散データグリッドにおけるどのメンバーからリカバリされるかについての分散コンセンサスを形成することとを含むステップを実行するよう動作する、システム。
【請求項１０】
複数の分散ローカルディスクが前記永続ストレージに含まれており、前記分散データグリッドにおける各メンバーは、前記分散ローカルディスクのうちの１つ以上に対するビジビリティのみを有し、
前記コーディネータは、前記分散データグリッドにおけるメンバーであり、
前記コーディネータは、前記分散データグリッドにおける前記複数のメンバーから前記複数の永続化されたパーティションについての情報を受け取り、
前記分散データグリッドは、すべての永続化されたパーティションがリカバリに先立って可視であることを保証するためにリカバリクォーラムを使用するよう動作し、
前記永続ストレージは、１つ以上のストレージエリアネットワーク（ＳＡＮ）を含み、前記１つ以上のＳＡＮは、
前記分散データグリッドにおいて複数のメンバーによって共有されること、
複数のストレージ位置にて複数のメンバーによって共有されること、および、
１つ以上のローカルディスクを有するハイブリッドな展開において複数のメンバーによって共有されること、のうち少なくともいずれかである、請求項９に記載のシステム。
【請求項１１】
前記分散データグリッドは、
前記分散コンセンサスに基づいて、前記分散データグリッドにおいて各メンバーについてパーティションリカバリ割当を決定するよう動作し、
前記パーティションリカバリ割当を決定するためにプラガブルパーティション割当ストラテジーを使用するよう動作し、
前記分散データグリッドにおける各メンバーに前記パーティションリカバリ割当を提供するために動作し、前記各メンバーは、前記分散データグリッドに関連付けられる前記永続ストレージから１つ以上のパーティションをリカバリするよう動作する、請求項９または１０に記載のシステム。
【請求項１２】
１つ以上のコミュニケーションチャンネルと相互接続される複数のサーバノードを含む分散データグリッドに使用されるコーディネータであって、前記分散データグリッドにおける複数のメンバーが、永続ストレージにおいて１つ以上のキャッシュサービスに関連付けられる複数のパーティションを永続化しており、前記コーディネータは、
前記分散データグリッドにおける前記複数のメンバーの間でパーティションオーナーシップのビューを同期するように構成される同期ユニットと、
どのパーティションが前記分散データグリッドにおけるどのメンバーからリカバリされるかについての分散コンセンサスを形成するように構成される形成ユニットとを含む、コーディネータ。
【請求項１３】
複数の分散ローカルディスクが前記永続ストレージに含まれており、前記分散データグリッドにおける各メンバーは、１つ以上の分散ローカルディスクに対するビジビリティのみを有しており、
前記コーディネータは、前記分散データグリッドにおけるメンバーであり、
前記コーディネータはさらに、前記分散データグリッドにおける前記複数のメンバーから、前記複数の永続化されたパーティションについての情報を受け取るように構成される受取ユニットを含む、
すべての永続化されたパーティションがリカバリに先立って可視であることを保証するために、リカバリクォーラムが使用され、
前記永続ストレージは、１つ以上のストレージエリアネットワーク（ＳＡＮ）を含み、前記１つ以上のＳＡＮは、
前記分散データグリッドにおいて複数のメンバーによって共有されること、
複数のストレージ位置にて複数のメンバーによって共有されること、および、
１つ以上のローカルディスクを有するハイブリッドな展開において複数のメンバーによって共有されること、のうち少なくともいずれかである、請求項１２に記載のコーディネータ。
【請求項１４】
前記分散コンセンサスに基づいて、前記分散データグリッドにおいて各メンバーについてパーティションリカバリ割当を決定するように構成される決定ユニットをさらに含み、
決定ユニットは、前記パーティションリカバリ割当を決定するプラガブルパーティション割当ストラテジーコンポーネントであり、
前記分散データグリッドにおいて各メンバーに前記パーティションリカバリ割当を提供するように構成される提供ユニットをさらに含み、前記各メンバーは、前記分散データグリッドに関連付けられる前記永続ストレージから１つ以上のパーティションをリカバリするよう動作する、請求項１３に記載のコーディネータ。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権表示
この特許文書の開示の一部は、著作権の保護下にある内容を含む。著作権所有者は、特許商標庁の特許ファイルまたはレコードに現れるので、誰でも当該特許文書または特許開示を複製することについて異議はないが、そうでなければ如何なる場合でもすべての著作権を留保する。
【０００２】
発明の分野
本発明は一般にコンピュータシステムに関し、特に、分散データグリッドにおいて永続性（persistence）をサポートすることに関する。
【背景技術】
【０００３】
背景
現代のコンピューティングシステム、特に大組織およびエンタープライズによって使用されるコンピューティングシステムは、サイズおよび複雑性が増加し続けている。特に、インターネットアプリケーションのような領域では、何百万ものユーザが当該アプリケーションに同時にアクセスすることが可能であるべきであるとの期待が存在し、これは、実際上、ユーザによって生成および消費されるコンテンツの量とそのコンテンツに伴うトランザクションとの指数関数的な増加に結びつく。また、そのようなアクティビティにより、データベースおよびメタデータストアへのトランザクションコールの数が対応して増加することになり、当該需要に対応するキャパシティが限られることになる。これは、本発明の実施形態が対応することが意図される一般的な領域である。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要
本願明細書において、分散データグリッドにおいて永続性をサポートし得るシステムおよび方法が記載される。分散データグリッドにおける複数のメンバーは、永続ストレージにおいて１つ以上のキャッシュサービスに関連付けられる複数のパーティションを永続化し得る。さらに、分散データグリッドにおけるメンバーであり得るコーディネータは、分散データグリッドにおける複数のメンバー間でパーティションオーナーシップのビューを同期し得るとともに、どのパーティションが分散データグリッドにおけるどのメンバーからリカバリされ得るかについての分散コンセンサスを、同期されたビューに基づき形成する。
【０００５】
一実施形態に従うと、１つ以上のコミュニケーションチャンネルに相互接続される複数のサーバノードを含む分散データグリッドに使用されるコーディネータが提供され、分散データグリッドにおける複数のメンバーは、永続ストレージにおいて１つ以上のキャッシュサービスに関連付けられる複数のパーティションを永続化しており、上記コーディネータは、分散データグリッドにおける複数のメンバーの間でパーティションオーナーシップのビューを同期するように構成される同期ユニットと、どのパーティションが分散データグリッドにおけるどのメンバーからリカバリされるかについての分散コンセンサスを形成するように構成される形成ユニットとを含む。
【０００６】
一実施形態において、複数の分散ローカルディスクが永続ストレージに含まれており、分散データグリッドにおける各メンバーは、１つ以上の分散ローカルディスクに対するビジビリティのみを有する。
【０００７】
一実施形態において、コーディネータは分散データグリッドにおけるメンバーである。
一実施形態において、コーディネータはさらに、分散データグリッドにおける複数のメンバーから、複数の永続化されたパーティションについての情報を受け取るように構成される受取ユニットを含む。
【０００８】
一実施形態において、すべての永続化されたパーティションがリカバリに先立って可視であることを保証するために、リカバリクォーラムが使用される。
【０００９】
一実施形態において、永続ストレージは、１つ以上のストレージエリアネットワーク（ＳＡＮ）を含み、１つ以上のＳＡＮは、分散データグリッドにおいて複数のメンバーによって共有されること、複数のストレージ位置にて複数のメンバーによって共有されること、および、１つ以上のローカルディスクを有するハイブリッドな展開において複数のメンバーによって共有されることのうち少なくともいずれかである。
【００１０】
一実施形態において、コーディネータは、分散コンセンサスに基づいて、分散データグリッドにおいて各メンバーについてパーティションリカバリ割当を決定するように構成される決定ユニットをさらに含む。
【００１１】
一実施形態において、決定ユニットは、パーティションリカバリ割当を決定するプラガブルパーティション割当ストラテジーコンポーネントである。
【００１２】
一実施形態において、コーディネータは、分散データグリッドにおいて各メンバーにパーティションリカバリ割当を提供するように構成される提供ユニットをさらに含み、上記各メンバーは、分散データグリッドに関連付けられる永続ストレージから１つ以上のパーティションをリカバリするよう動作する。
【図面の簡単な説明】
【００１３】
【図１】本発明のさまざまな実施形態に従ったデータグリッドクラスタの図である。
【図２】本発明の実施形態に従った、分散データグリッドにおける永続性をサポートすることについての図を示す図である。
【図３】本発明の実施形態に従った、分散データグリッドにおいて永続性をサポートするために、共有されるストレージを使用することについての図を示す図である。
【図４】本発明の実施形態に従った、分散データグリッドにおいて永続性をサポートするために分散ローカルディスクを使用することについての図を示す図である。
【図５】本発明の実施形態に従った、分散データグリッドにおいて分散永続ストアのリカバリ（distributed persistent store recovery）をサポートすることについての図を示す図である。
【図６】本発明の実施形態に従った、分散データグリッドにおける永続ストアのリカバリをコーディネートすることについての図を示す図である。
【図７】本発明の実施形態に従った、分散データグリッドにおいて一貫したパーティションリカバリをサポートすることについての図を示す図である。
【図８】本発明の実施形態に従った、分散データグリッドにおける分散永続ストアのリカバリをサポートするための例示的なフローチャートを示す図である。
【図９】本発明の実施形態に従った、分散データグリッドにおける永続ストアバージョニングをサポートすることについての図を示す図である。
【図１０】本発明の実施形態に従った、分散データグリッドにおける永続ストアのインテグリティをサポートすることについての図を示す図である。
【図１１】本発明の実施形態に従った、分散データグリッドにおいて永続化パーティションをリストアすることについての図を示す図である。
【図１２】本発明の実施形態に従った、分散データグリッドにおける永続ストアのバージョニングおよびインテグリティをサポートするための例示的なフローチャートを示す図である。
【図１３】本発明の実施形態に従った、分散データグリッドにおける実行中のシステムの永続スナップショットを提供することについての図を示す図である。
【図１４】本発明の実施形態に従った、分散データグリッドにおける実行中のシステムの永続スナップショットを提供するための例示的なフローチャートを示す図である。
【図１５】本発明のある実施形態に従ったコーディネータ１５００の簡略ブロック図である。
【図１６】本発明の実施形態の機能的構成を示す図である。
【図１７】本発明の実施形態を実現するためのコンピュータシステムの図である。
【発明を実施するための形態】
【００１４】
詳細な説明
本願明細書において、分散データグリッドにおいて永続性をサポートし得るシステムおよび方法が記載される。
【００１５】
分散データグリッド
ある実施形態に従うと、本願明細書において「データグリッドクラスタ」または「データグリッド」と称されるものは、分散化またはクラスタ化された環境内において情報および演算のような関連するオペレーションを管理するために一緒に作動する複数のコンピュータサーバを含むシステムである。データグリッドクラスタは、これらのサーバにわたって共有されるアプリケーションオブジェクトおよびデータを管理するために使用され得る。好ましくは、データグリッドクラスタは、低い応答時間、高いスループット、予測可能なスケーラビリティ、連続的な可用性、および情報信頼性を有するべきである。これらの能力の結果、データグリッドクラスタは、計算集中的である、ステートフルな中間層アプリケーションにおける使用に良好に好適である。たとえばオラクルコヒーレンスデータグリッドクラスタ（Oracle Coherence data grid cluster）といったデータグリッドクラスタのいくつかの例は、より高い性能を達成するために情報をインメモリで格納し得るとともに、複数のサーバにわたって同期される当該情報のコピーを保つ際に冗長性を用い得、これにより、サーバの故障の場合にシステムの回復性とデータの可用性とを保証する。たとえば、コヒーレンスは、信頼性があり、非常にスケーラブルなピアツーピアクラスタリングプロトコル上で、複製および分散（パーティション化）されたデータ管理およびキャッシングサービスを提供する。
【００１６】
インメモリデータグリッドは、共に作動する多くのサーバ上にデータを分散することによってデータストレージおよび管理能力を提供し得る。データグリッドは、アプリケーションサーバと同じ層において実行されるか、または、アプリケーションサーバ内において実行されるミドルウェアであり得る。データグリッドは、データの管理および処理を提供し得、さらに、データがグリッドにおいて位置するところに処理をプッシュし得る。さらに、インメモリデータグリッドは、サーバが作動しなくなるかまたはネットワークから切断される場合に、自動的かつトランスピアレントにフェイルオーバーし、そのクラスタデータ管理サービスを再分散することによって単一障害点（single points of failure）を除去し得る。新しいサーバが追加されるか、または、フェイルしたサーバが再起動されると、当該サーバは自動的にクラスタに加わり、サービスはそれに戻るようにフェイルオーバーされ得、トランスピアレントにクラスタロードを再分散する。データグリッドはさらに、ネットワークレベルのフォールトトレランス機能と、トランスピアレントなソフトリスタート（soft restart）能力とを含み得る。
【００１７】
実施形態に従うと、データグリッドクラスタの機能は、異なるクラスタサービスの使用に基づく。クラスタサービスは、ルートクラスタサービス、パーティション化されたキャッシュサービス、および、プロキシサービスを含み得る。データグリッドクラスタ内では、各クラスタノードは、クラスタサービスを提供および消費する両方の点において多くのクラスタサービスに参加し得る。各クラスタサービスは、データグリッドクラスタ内のサービスを一意に識別するサービス名と、クラスタサービスが行なうことが可能であることを定義するサービスタイプとを有する。データグリッドクラスタにおいて各クラスタノード上で実行されるルートクラスタサービス以外に、各サービスタイプの複数の名称付けされたインスタンス（multiple named instances）が存在し得る。サービスは、ユーザによって構成されるか、または、サービスのデフォルトセットとしてデータグリッドクラスタによって提供されるかのいずれかであり得る。
【００１８】
図１は、本発明のさまざまな実施形態に従ったデータグリッドクラスタの図である。図１に示されるように、たとえばオラクルコヒーレンスデータグリッドといったデータグリッドクラスタ１００は、さまざまなクラスタサービス１１１〜１１６が実行されるクラスタノード１０１〜１０６のような複数のクラスタメンバー（またはサーバノード）を含む。さらに、キャッシュコンフィギュレーションファイル１１０は、データグリッドクラスタ１００を構成するために使用され得る。
【００１９】
キャッシュコンテンツの永続ストレージ
本発明の実施形態に従うと、分散データグリッドは、異なるタイプのキャッシュコンテンツのためのリカバリ可能な永続ストレージを提供し得、分散データグリッドがシャットダウンされた後のデータ損失を防止し得る。   
【００２０】
図２は、本発明の実施形態に従った、分散データグリッドにおける永続性をサポートすることについての図を示す。図２に示されるように、分散データグリッド２００は、インメモリデータストア２０２にさまざまなタイプのキャッシュコンテンツ２１１〜２１３を含み得る。さらに、分散データグリッド２００は、永続ストレージ２０３においてキャッシュコンテンツ２１１〜２１３を永続するために永続レイヤー２０１を使用し得る。
【００２１】
永続レイヤー２０１は、永続ストレージ２０３が異なる物理トポロジーを使用することを可能にする。たとえば、永続レイヤー２０１は、分散データグリッド２００における全メンバーが同じビジビリティ（visibility）を共有し得る、ストレージエリアネットワーク（ＳＡＮ：storage area network）２２１のような中央位置にキャッシュコンテンツを格納し得る。代替的には、永続レイヤー２０１は、分散データグリッド２００のメンバーがローカルビジビリティのみを有する異なるローカルディスク２２２にキャッシュコンテンツを格納し得る。
【００２２】
さらに、永続レイヤー２０１は物理トポロジー（たとえばＳＡＮ２２１または分散ローカルディスク２２２）の選択に対して非依存（agnostic）であり得る。たとえば、分散データグリッド２００は、複数のＳＡＮまたは複数のＳＡＮマウントポイントを活用し得る。さらに、分散データグリッド２００は、複数のメンバーによって共有されない複数のＳＡＮを含む物理トポロジーを活用し得る。代替的には、物理トポロジーは、ストレージ位置をエクスポートする複数のＳＡＮを含むか、または、ローカルディスクおよびＳＡＮのハイブリッドな展開（hybrid deployment）を含み得る。
【００２３】
さらに、永続レイヤー２０１は、永続化されるデータ／メタデータのパーティションワイドのアトミック性（partition-wide atomicity）をサポートし得、分散データグリッド２００の再起動の後にトランザクションの保証を提供し得る。さらに、永続レイヤー２０１は性能インパクトを最小化し、かつ、分散データグリッド２００を再起動するために必要とされるリカバリ時間を低減し得る。
【００２４】
図３は、本発明の実施形態に従った、分散データグリッドにおいて永続性をサポートするために、共有されるストレージを使用することについての図を示す。図３に示されるように、複数のメンバー（たとえばマシンＡ３１１〜Ｃ３１３上のメンバー３０１〜３０５）を含む分散データグリッド３００は、さまざまなキャッシュサービス３２０をサポートし得る。
【００２５】
さらに、分散データグリッド３００は、中央位置においてキャッシュサービス３２０のためのキャッシュコンテンツを格納するために、ストレージエリアネットワーク（ＳＡＮ）３１０のような共有された永続ストレージを使用し得る。図３に示されるように、マシンＡ３１１〜Ｃ３１３上の異なるメンバー３０１〜３０５は、同じビジビリティを共有し得、すべてがＳＡＮ３１０において永続化パーティション３２２にアクセスを有し得る。
【００２６】
したがって、分散データグリッド３００がシャットダウンの後に再起動される場合に、システムは永続化されたキャッシュコンテンツをリカバリし、データ損失を防止し得る。
【００２７】
図４は、本発明の実施形態に従った、分散データグリッドにおいて永続性をサポートするために分散ローカルディスクを使用することについての図を示す。図４に示されるように、複数のメンバー（たとえばマシンＡ４１１〜Ｃ４１３上のメンバー４０１〜４０５）を含む分散データグリッド４００は、さまざまなキャッシュサービス４２０をサポートし得る。
【００２８】
さらに、分散データグリッド４００は、キャッシュサービス４２０のためのキャッシュコンテンツを異なるマシン上のローカルディスクへ格納し得る。たとえば、メンバー４０１〜４０２は、関連するキャッシュコンテンツをマシンＡ４１１上のローカルディスクＡ４３１へ格納し得る（たとえば永続化パーティション４２１）。さらに、メンバー４０３〜４０４は、関連するキャッシュコンテンツをマシンＢ４１２上のローカルディスクＢ４３２に格納し得（たとえば永続化パーティション４２２）、また、マシンＣ４１３は、関連するキャッシュコンテンツをマシンＣ４１３上のローカルディスクＣ４３３へ格納し得る（たとえば永続化パーティション４２３）。
【００２９】
したがって、分散データグリッド４００は、分散した態様でさまざまなタイプのキャッシュコンテンツの自動的なリカバリをサポートし得るとともに、分散データグリッド４００の再起動の間にデータ損失を防止し得る。
【００３０】
分散永続ストアのリカバリ
本発明の実施形態に従うと、分散データグリッドは、分散した態様で永続ストアのリカバリをサポートし得る。
【００３１】
図５は、本発明の実施形態に従った、分散データグリッドにおいて分散永続ストアのリカバリ（distributed persistent store recovery）をサポートすることについての図を示す。図５に示されるように、分散データグリッド５００は、たとえばメンバー５０１〜５０５のような複数のメンバーを含み得、たとえばローカルディスクＡ５１１〜Ｃ５１３のような分散ローカルディスクを使用してキャッシュコンテンツを永続し得る。
【００３２】
さらに、分散データグリッド５００における各メンバーは、ローカルディスクにおいて永続化されるパーティションに対してのみビジビリティを有し得る。たとえば、メンバー５０１およびメンバー５０２は、ローカルディスクＡ５１１における永続化パーティション５２１のみを認識し得、メンバー５０３およびメンバー５０４は、ローカルディスクＢ５１２における永続化パーティション５２２のみを認識し得、また、メンバー５０５は、ローカルディスクＣ５１３における永続化パーティション５２３のみを認識し得る。
【００３３】
本発明の実施形態に従うと、分散データグリッド５００は、異なるローカルディスクＡ５１１〜Ｃ５１３上において永続化パーティション５２１〜５２３をディスカバリ（discover）するよう内部プロトコルを使用し得る。たとえば、ディスカバリプロトコルは、クラスタコールドスタート／再起動シナリオおよび複数ノード障害シナリオ（たとえば、パーティションのプライマリオーナーの損失および／またはパーティションの１つ以上のバックアップオーナーの損失を伴う）の両方の間、永続ストアのリカバリをサポートする。
【００３４】
図５に示されるように、分散データグリッド５００は、コーディネータメンバー５１０のようなコーディネータを使用して、分散データグリッド５００においてさまざまな永続化パーティション５２１〜５２３のリカバリをコーディネートし得る。コーディネータメンバー５１０は、永続化パーティション５２１〜５２３の完全なリストを得るために、分散データグリッド５００における他のメンバー５０１〜５０５に分散クエリーを送信し得る。
【００３５】
したがって、本開示の実施形態に従うと、メンバー（５０１〜５０５，５１０）は、分散データグリッドの要素である。分散データグリッドの複数のメンバーのうちの１つのメンバー５１０は、分散データグリッドにおけるさまざまな永続化パーティションのリカバリのための情報を扱うコーディネータとして作動し得る。情報を扱うことは、分散データグリッドにおける複数のメンバーの間でパーティションオーナーシップのビューを同期することと、複数の永続化パーティションに関する情報を分散データグリッドにおける複数のメンバーから受け取ることとを含み得る。ある局面において、コーディネータは、「コーディネータメンバー」５１０と称され得る。
【００３６】
本発明の実施形態に従うと、コーディネータメンバー５１０は、パーティションリカバリ割当５４０を決定するために、プラガブルパーティション割当ストラテジーコンポーネント（pluggable partition assignment strategy component）５２０を使用し得る。たとえば、システムは、パーティションのリストを下まで見て、どのメンバーがパーティションのバージョンを見ることができるか調べる。その後、システムは、同期されたパーティションオーナーシップビュー５３０に基づいて、どのメンバーを使用してどのパーティションをリカバリするべきかを決定し得る。
【００３７】
さらに、システムは、分散データグリッド５００に永続サポートを追加することにより引き起こされる性能インパクトを最小化し得る。たとえば、システムは、永続ストアに対する書込オペレーションを実現するために、分散データグリッド５００において非同期メッセージプロセスを使用し得る。さらに、システムは、複数の入力／出力（Ｉ／Ｏ）オペレーションを同時に行なうことを可能にする。
【００３８】
さらに、コーディネータメンバー５１０は、リカバリを実行するために、性能ボトルネックを作り出す傾向があり得る分散データグリッド５００における１つまたはいくつかのメンバーのみの使用を回避し得る。
【００３９】
さらに、システムは、リカバリによるデータ損失を防止するために、すべての永続化パーティションがリカバリに先立って可視であることを保証するためにリカバリクォーラム（recovery quorum）を使用し得る。
【００４０】
分散データグリッド５００においてサービスレベルクォーラムをサポートするさまざまな実施形態の付加的な説明は、２０１２年１月１７日に出願された、本願明細書において参照により援用される「データグリッドクラスタにおいてサービスレベルクォーラムをサポートするためのシステムおよび方法（SYSTEM AND METHOD FOR SUPPORTING SERVICE LEVEL QUORUM IN A DATA GRID CLUSTER）」という名称を有する米国特許出願番号第１３／３５２，２０３号（代理人管理番号ＯＲＡＣＬ−０５１３１ＵＳ２）において提供される。
【００４１】
したがって、分散データグリッド５００は、分散データグリッド５００の再起動の間に、永続キャッシュコンテンツのリカバリを分散した態様で自動的に実行し得る。
【００４２】
図６は、本発明の実施形態に従った、分散データグリッドにおける永続ストアのリカバリをコーディネートすることについての図を示す。図６に示されるように、分散データグリッド６００におけるコーディネータメンバー６１０は、分散ローカルディスクからの永続化パーティションのリカバリをコーディネートすることができる。たとえば、コーディネータメンバー６１０は、ローカルディスク６３０から永続化パーティションをリカバリするためにメンバー６２０に指示を与え得る。
【００４３】
ステップ６０１では、コーディネータメンバー６１０は、永続化パーティションのリストアの準備をするようメンバー６２０（および同時に分散データグリッド６００におけるすべての他のメンバー）に指示を与え得る。その後、ステップ６０２において、（恐らく分散データグリッド６００における他の各メンバーとともに）メンバー６２０は、コーディネータメンバー６１０にローカルパーティションオーナーシップを提供し得る。
【００４４】
ステップ６０３では、コーディネータメンバー６１０は、分散データグリッド６００における異なるメンバーからパーティションオーナーシップ情報を得た後、全体的なパーティションオーナーシップのビューを同期し得る。
【００４５】
さらに、ステップ６０４において、コーディネータメンバー６１０は、全体的なパーティションオーナーシップのビューに基づいて、永続化パーティションのリカバリの準備をするようにメンバー６２０に指示を与え得る。ステップ６０５では、メンバー６２０は、ローカルディスク６３０における永続化パーティションをチェックし得る。その後、ステップ６０６では、メンバー６２０は、ローカルディスク６３０における永続化パーティション（たとえば永続化パーティションＩＤ）をコーディネータメンバー６１０に報告し得る。
【００４６】
ステップ６０７では、コーディネータメンバー６１０は、分散データグリッド６００における異なるメンバーから永続化パーティションに関する情報を得た後、リカバリ割当を決定するといったように、リカバリ処理をどのように構成するかについて決定を行ない得る。
【００４７】
その後、ステップ６０８では、コーディネータメンバー６１０は、分散データグリッド６００における各メンバーにパーティションリカバリ割当（たとえばリカバリパーティションＩＤ）を提供し得る。最後に、ステップ６０９では、分散データグリッド６００における異なるメンバー（メンバー６２０を含む）が、受け取られたパーティションリカバリ割当に基づいて、永続化パーティションのリカバリを行ない得る。
【００４８】
図７は、本発明の実施形態に従った、分散データグリッドにおいて一貫したパーティションリカバリをサポートすることについての図を示す。図７に示されるように、分散データグリッド７００はたとえばメンバー７０１〜７０５といった複数のメンバーを含み得、当該複数のメンバーの各々は、ローカルディスクにおいて永続化されたパーティションに対してのみビジビリティを有し得る。
【００４９】
さらに、コーディネータメンバー７１０は、分散ローカルディスクＡ７１１〜Ｃ７１３からさまざまな永続化パーティション７２１〜７２３のリカバリをコーディネートし得る。さらに、コーディネータメンバー７１０は、どのメンバーを使用してどのパーティションをリカバリするべきかを決定するよう、プラガブルパーティション割当ストラテジーコンポーネント７２０を使用し得る。
【００５０】
本発明の実施形態に従うと、分散データグリッド７００におけるマシンが失われると、システムは、インメモリバックアップをインメモリプライマリにプロモートし得る。このプロセスの一部として、システムは新しい永続化パーティションをディスク上に作成し得るとともに、メモリにおけるデータから他のメンバー上に１つ以上のインメモリバックアップを作成し得る。
【００５１】
さらに、２つ以上（バックアップカウントに依存する）のメンバープロセスが同時に消えることによりインメモリデータ損失が発生すると、システムは、ディスクに対するビジビリティを有するメンバーが存在する場合、ディスク上の永続バージョンから新しいインメモリプライマリをリカバリし得る。
【００５２】
図７に示されるように、ローカルディスクＡ７１１に関連付けられるマシンが失われると、永続化パーティション７２１は利用不可能になり得る。そのような場合、分散データグリッド７００は自身をリバランスし得る。たとえば、分散データグリッド７００は、ローカルディスクＢ７１２またはローカルディスクＣ７１３のいずれかに永続化されるバックアップパーティションをプライマリパーティションとしてプロモートし得る。
【００５３】
本発明の実施形態に従うと、分散データグリッド７００は、システムが常に、最も新しい有効なパーティションをリストアすることを保証し得る。たとえば、ローカルディスクＢ７１２における永続化パーティション７２２は、ローカルディスクＡ７１１における永続化パーティション７２１が正しく更新され得ないか、または、パーティションの以前のオーナーの消滅により古いバージョンのパーティションが存在するので、より新しいバージョンのパーティションを含み得る。
【００５４】
本発明の実施形態に従うと、分散データグリッド７００は、永続化パーティション７２１〜７２３のディスカバリおよび／またはリカバリをサポートするためにリカバリクォーラムを使用し得る。リカバリクォーラムを使用することにより、永続性からのリカバリが阻止（gated）または保護され得る。したがって、分散データグリッド７００は、失われたメンバーの数がインメモリ冗長性ターゲットを超える場合であってもデータが失われないことを保証し得る。
【００５５】
さらに、分散データグリッド７００は、すべての永続化パーティションがリカバリに先立って可視であることを保証し得る。たとえば、リカバリクォーラムは、（ローカルディスクおよび／またはクラスタ内のＳＡＮのような）可能なストレージ位置のすべてに対するビジビリティを保証するように構成され得る。さらに、分散データグリッド７００は永続ストアから親のないパーティション（orphaned partition）をリカバリし得、それらを空のパーティションとして割り当て得る。
【００５６】
さらに、分散データグリッド７００は、リカバリクォーラムに基づいて異なるリカバリポリシーを確立し得る。たとえば、分散データグリッド７００は、キャパシティに集中するＳＡＮ／共有ストレージポリシーを確立し得る。さらに、分散データグリッド７００は、すべてのストレージ位置が到達可能であることを保証する分散／シェアードナッシングストレージポリシー（distributed/shared-nothing storage policies）を確立し得る。さらに、分散データグリッド７００は、構成されたメンバーシップサイズおよびホストリストに基づいてさまざまなポリシーを確立し得る。
【００５７】
本発明の実施形態に従うと、システムは、分散データグリッド７００におけるさまざまなメンバー７０１〜７０５が規則的な態様でシャットダウン（および／または再起動）されることを可能にするとともに、サービスまたは全クラスタのグレースフルな中断／再開を可能にする。さらに、システムは、分散データグリッドのシャットダウンの間にパーティショントランスファーおよび永続ストアの移動を防止し得る。たとえば、休止されたサービス／クラスタは、新メンバーに加わり得ず、バックアップからパーティションをリストアし得ず、永続ストアから親のないパーティションをリカバリし得ず、空の親のないパーティションを割り当て得ず、パーティション分散を実行し得ない。
【００５８】
図８は、本発明の実施形態に従った、分散データグリッドにおける分散永続ストアのリカバリをサポートするための例示的なフローチャートを示す。図８に示されるように、ステップ８０１では、システムは、分散データグリッドにおける複数のメンバーが、１つ以上のキャッシュサービスに関連付けられる複数のパーティションを永続ストレージに永続することを可能にする。その後、ステップ８０２では、コーディネータは、分散データグリッドにおいて、複数のメンバーの間でパーティションオーナーシップのビューを同期し得る。さらに、ステップ８０３では、分散データグリッドは、同期されたビューに基づいて、分散データグリッドにおいてどのメンバーからどのパーティションがリカバリされ得るかについての分散コンセンサス（distributed consensus）を形成し得る。分散コンセンサスは、問題を解決するように協働するクラスタノード１０１〜１０６のような複数のクラスタメンバー（またはサーバノード）の間で到達される合意（agreement）である。
【００５９】
永続ストアバージョニングおよびインテグリティ
図９は、本発明の実施形態に従った、分散データグリッドにおける永続ストアバージョニングをサポートすることについての図を示す。図９に示されるように、分散データグリッド９００は、異なるキャッシュサービスをサポートするよう、インメモリデータストア９２０においてさまざまなパーティション（たとえばパーティション９０１）を使用し得る。
【００６０】
さらに、分散データグリッド９００は、分散ローカルディスク９１０にパーティション９０１を永続するために永続ストア（たとえば永続化パーティション９１１）を使用し得る。
【００６１】
システムは、分散ローカルディスク９１０における各永続化パーティションについて、一意識別子（unique identifier；ＩＤ）または一意バージョン番号９０６を提供し得る。図９に示されるように、分散データグリッド９００におけるメンバー９０２は、永続化パーティション９１１について、グローバル一意識別子（ＧＵＩＤ： globally unique identifier）９２１を生成し得る。ＧＵＩＤ９２１は、特別なネーミングフォーマットを使用してさまざまなタイプの情報を含み得る。
【００６２】
たとえば、ＧＵＩＤ９２１は少なくとも、パーティション番号（またはパーティションＩＤ９０３）と、パーティション９０１に関連付けられるパーティションバージョン番号９１１とを含み得る。さらに、ＧＵＩＤ９２１は、メンバー９０２がＧＵＩＤ９２１を生成することを示すメンバーＩＤ９０４を含み得る。
【００６３】
さらに、ＧＵＩＤ９２１は、パーティション９０１が最初に永続化される時間を示すタイムスタンプ９０５のような他の情報を含み得る。タイムスタンプ９０５は、グローバルウォールクロックではなく、論理時間のスタンプ（たとえば各パーティションについてのベクトルクロックのスタンプ）である。したがって、システムは、如何なる種類の障害またはトランスファーシナリオに直面した場合でも、ＧＵＩＤスタンプが単調に前進することを保証し得る。
【００６４】
本発明の実施形態に従うと、分散データグリッド９００は、単調増加するオーダで、各永続化パーティションについてバージョン番号９１０を維持し得る。したがって、システムは、分散データグリッド９００における任意のメンバーまたはオーナーシップの変更でのデータ変異（data mutation）を説明し得る（account for）。
【００６５】
図１０は、本発明の実施形態に従った、分散データグリッドにおける永続ストアのインテグリティをサポートすることについての図を示す。図１０に示されるように、分散データグリッド１０００における永続ストア１００１は、キャッシュＩＤ１０２１〜１１２３に各々が関連付けられる異なるキャッシュＡ１０１１〜Ｃ１０１３からのキャッシュコンテンツを含み得る。
【００６６】
さらに、システムは、永続ストア１００１にシールオペレーション（seal operation）１００２を適用し得る。シールオペレーション１００２は、永続ストア１００１が完全に初期化されるとともにリカバリされる資格があることを保証し得る。
【００６７】
さらに、システムは、永続ストア１００１に対して確認オペレーション１００３を適用し得る。確認オペレーション１００３は、永続ストア１００１がシールされたかどうかチェックし得る。たとえば、システムは、永続ストア１００１がシールされていない場合、永続ストア１００１におけるキャッシュコンテンツが有効ではないことを決定し得る。
【００６８】
したがって、システムは、分散データグリッド１０００が常に有効な永続化パーティションをリストアし、かつ、カスケードクラスタ障害により引き起こされ得る部分的なコピーをリカバリすることを回避することを保証し得る。
【００６９】
図１１は、本発明の実施形態に従った、分散データグリッドにおいて永続化パーティションをリストアすることについての図を示す。図１１に示されるように、分散データグリッド１１００は、分散ローカルディスク１１１０においてさまざまな永続化パーティション１１１１〜１１１３を格納し得る。
【００７０】
分散ローカルディスク１１１０に格納された各永続化パーティション１１１１〜１１１３は、たとえばＧＵＩＤ１１４１〜１１４３といったグローバル一意識別子（ＧＵＩＤ）に関連付けられ得る。ＧＵＩＤ１１４１〜１１４３は、少なくともパーティション番号（すなわちパーティションｉｄ）およびバージョン番号を含む異なるタイプの情報を含み得る。
【００７１】
本発明の実施形態に従うと、分散データグリッド１１００におけるメンバー１１０１〜１１０２は、分散ローカルディスク１１１０における永続化パーティション１０１１〜１０１３に対する異なるビジビリティを有し得る。システムは、どのメンバーが特定の永続化パーティション１１１１〜１１１３に対してビジビリティを有し得ることについての情報を含むＧＵＩＤ１１４１〜１１４３を構成し得る。
【００７２】
さらに、分散ローカルディスク１１１０におけるカスケード障害の結果、同じ永続化パーティション１０１１〜１０１３の複数バージョンが、分散データグリッド１１００の異なるメンバー１１０１〜１１０２上に存在し得る。これらの異なるバージョンを明確にするために、分散データグリッド１１００におけるメンバー１１０１〜１１０２の各々は、発見される永続化パーティションの各々について、（パーティション番号および他の情報を含み得る）ＧＵＩＤ１１４１〜１１４３を報告し得る。本発明の実施形態に従うと、パーティションについて最も新しいＧＵＩＤの存在を報告するメンバーのみがリカバリのために考慮され得る。
【００７３】
図１１に示されるように、分散データグリッド１１００における各メンバー１１０１〜１１０２は、ローカルビジビリティに基づいて、分散ローカルディスク１１１０から、利用可能なＧＵＩＤのリスト１１２１〜１１２２を収集し得る。その後、各メンバー１１０１〜１１０２は、利用可能なＧＵＩＤのリスト１１２１〜１１２２を分散データグリッド１１００におけるレゾルバ１１０３に提供（または登録）し得、レゾルバ１１０３は、ＧＵＩＤ１１４１〜１１４３においてエンコードされたパーティション番号およびバージョン情報に基づいて、異なるパーティションについて最新のＧＵＩＤ１１３０を決定し得る。
【００７４】
さらに、システムの分散的な性質により、分散ローカルディスク１１１０は、同じパーティションの複数の異なるバージョンを含み得る。言いかえれば、レゾルバ１１０３は、同じパーティション番号および異なるバージョン番号を含む複数のＧＵＩＤを受け取り得る。
【００７５】
そのような場合、レゾルバ１１０３は、同じパーティションに関連付けられる各ＧＵＩＤからバージョン番号を取得し得るとともに、どのＧＵＩＤが最も新しいバージョン番号を有しているかを判定し得る。さらに、分散データグリッド１１００は、シールオペレーションおよび確認オペレーションの実行に基づいて、最も新しいバージョン番号を有する永続化パーティションが有効であることを保証し得る。
【００７６】
さらに、レゾルバ１１０３は、ＧＵＩＤ１１４１〜１１４３においてエンコードされたメンバーＩＤ情報に基づいて、分散データグリッド１１００におけるどのメンバー１１０１〜１１０２が特定の永続化パーティション１１１１〜１１１３をリカバリすることを担うかを決定し得る。
【００７７】
その後、レゾルバ１１０３は、最新のＧＵＩＤのリスト１１３１〜１１３２を含み得るパーティションリカバリ割当を各異なるメンバー１１０１〜１１０２に提供し得る。したがって、メンバー１１０１〜１１０２は、永続化パーティション１１１１〜１１１３をリストアする実際の動作を行ない得る。
【００７８】
したがって、システムは、分散データグリッド１１００が常に任意の永続化パーティションの最新の有効なバージョンをリストアし、かつ、カスケードクラスタ障害により引き起こされ得る部分的なコピーをリカバリすることを回避し得ることを保証し得る。
【００７９】
図１２は、本発明の実施形態に従った、分散データグリッドにおける永続ストアのバージョニングおよびインテグリティをサポートするための例示的なフローチャートを示す。図１２に示されるように、ステップ１２０１では、システムは、分散データグリッドの１つ以上のメンバーから複数の識別子（たとえばＧＵＩＤ）を受け取り得、上記の各識別子は、分散データグリッドについて永続ストレージにおける永続化パーティションに関連付けられる。その後、ステップ１２０２では、システムは、各パーティションについて識別子を選択し得、各選択された識別子は、パーティションの最も新しい有効なバージョンに関連付けられる。さらに、ステップ１２０３では、システムは、選択された識別子に関連付けられる永続化パーティションから上記パーティションをリカバリすることを担う、分散データグリッドにおけるメンバーを決定し得る。
【００８０】
実行中のシステムの永続スナップショット
図１３は、本発明の実施形態に従った、分散データグリッドにおける実行中のシステムの永続スナップショットを提供することについての図を示す。図１３に示されるように、分散データグリッド１３００は、インメモリデータストア１３０２を使用して、さまざまなキャッシュサービス１３２０をサポートし得る。
【００８１】
さらに、システムは、オンデマンドで任意の特定の時に、キャッシュサービス１３２０をサポートする、インメモリデータストア１３０２上にて実行中のシステムのスナップショット１３０１を取得するよう、ユーザが管理ツール１３１０を使用することを可能にする。たとえば、スナップショット１３０１は、実行中のシステムのバックアップを一晩のうちに作成するように使用され得る。
【００８２】
本発明の実施形態に従うと、システムは、スナップショット１３０１を取る前に、キャッシュサービス１３２０を停止し得る。したがって、システムは、スナップショット１３０１を取るために時間において一貫したポイントを提供し得る。その後、スナップショット１３０１が取られた後、キャッシュサービス１３２０が再開され得る。
【００８３】
さらに、スナップショット１３０１は、各パーティション化されたキャッシュサービス１３２０の一貫したビューを提供し得る。たとえば、スナップショット１３０１は、当該パーティション化されたキャッシュサービス１３２０についてのメタデータ１３１１およびキャッシュデータ１３１２を含む、実行中のシステムの状態情報のカタログを提供し得る。さらに、システムは、中央位置（たとえばＳＡＮ１３２１）または分散ローカルディスク１３２２のいずれかにスナップショット１３０１を格納し得る。
【００８４】
さらに、スナップショット１３０１におけるさまざまなアーティファクトが作成され分散ローカルディスク１３２２に格納される場合、システムは、分散ローカルディスク１３２２からスナップショット１３０１の永続状態情報を抽出するよう、プラガブル（またはポータブル）アーカイバ１３０３を使用し得るとともに、監査または他の目的に使用可能である単一のアーカイブユニット１３３０を作成し得る。
【００８５】
したがって、システムは、連続的な態様で分散データグリッド１３００にキャッシュコンテンツを永続する代わりに、分散データグリッド１３００においてパーティション化されたキャッシュサービスの状態について、ユーザがスナップショットを取ることを可能にする。
【００８６】
図１４は、本発明の実施形態に従った、分散データグリッドにおける実行中のシステムの永続スナップショットを提供するための例示的なフローチャートを示す。図１４に示されるように、ステップ１４０１では、システムは、分散データグリッドにおいて、１つ以上のキャッシュサービスが複数のクラスタメンバー上で実行されることを可能にする。その後、ステップ１４０２では、システムは、分散データグリッドにおける複数のクラスタメンバーから、上記１つ以上のキャッシュサービスに関連付けられる状態情報のカタログを収集し得る。さらに、ステップ１４０３では、システムは、分散データグリッド上で実行される上記１つ以上のキャッシュサービスについてのスナップショットを作成し得る。
【００８７】
図１５は、本発明のある実施形態に従って使用され得るコーディネータ１５００の簡略ブロック図である。コーディネータ１５００のブロックは、本発明の原理を実施するために、ハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの組合せによって実現され得る。当業者であれば、図１５に記載されるブロックは、上述のように、本発明の原理を実現するために、組み合されてもよく、またはサブブロックへと分離されてもよいということが理解される。したがって、本願明細書における記載は、本願明細書において記載される機能ブロックの任意の可能な組合せ、分離、またはさらなる定義をサポートし得る。
【００８８】
図１５において、以前に記載された任意の分散データグリッドのような分散データグリッドのために使用され得るコーディネータ１５００が示される。分散データグリッドは、１つ以上のコミュニケーションチャンネルに相互接続される複数のサーバノードを含み得、当該分散データグリッドにおける複数のメンバーが、永続ストレージにおける１つ以上のキャッシュサービスに関連付けられる複数のパーティションを永続化する。
【００８９】
示されるように、コーディネータは、分散データグリッドにおける複数のメンバーの間でパーティションオーナーシップのビューを同期するように構成され得る同期ユニット１５０１と、分散データグリッドにおいてどのパーティションがどのメンバーからリカバリされるかについての分散コンセンサスを形成するように構成され得る形成ユニット１５０３とを含み得る。一実施形態において、各ユニットは、コンピュータプログラム命令を読み出すことにより対応するプロセスを実行するプロセッサとして実現され得る。
【００９０】
一実施形態において、複数の分散ローカルディスクが永続ストレージに含まれ得、分散データグリッドにおける各メンバーは、１つ以上の分散ローカルディスクに対するビジビリティのみを有し得る。
【００９１】
一実施形態において、コーディネータ１５００は、当該分散データグリッドにおけるメンバーであり得る。
【００９２】
一実施形態において、コーディネータ１５００はさらに、上記複数の永続化されたパーティションについての情報を分散データグリッドにおける複数のメンバーから受け取るように構成される受取ユニット（１５０５）を含み得る。
【００９３】
一実施形態において、リカバリクォーラムは、すべての永続化されたパーティションがリカバリに先立って可視であることを保証するために使用され得る。
【００９４】
一実施形態において、永続ストレージは、１つ以上のストレージエリアネットワーク（ＳＡＮ）を含み得、上記１つ以上のＳＡＮは、分散データグリッドにおいて複数のメンバーによって共有されること、複数のストレージ位置にて複数のメンバーによって共有されること、および、１つ以上のローカルディスクを有するハイブリッドな展開において複数のメンバーによって共有されることのうち少なくともいずれかである。
【００９５】
一実施形態において、コーディネータ１５００は、分散コンセンサスに基づいて、分散データグリッドにおける各メンバーについてパーティションリカバリ割当を決定するように構成され得る決定ユニット１５０７を含み得る。
【００９６】
一実施形態において、決定ユニット１５０７は、図５に示されるようなプラガブルパーティション割当ストラテジーコンポーネント５２０のような、パーティションリカバリ割当を決定するプラガブルパーティション割当ストラテジーコンポーネントであり得る。
【００９７】
一実施形態において、コーディネータは、分散データグリッドにおける各メンバーにパーティションリカバリ割当を提供するように構成され得る提供ユニット１５０９をさらに含み、各メンバーは、分散データグリッドに関連付けられる永続ストレージから１つ以上のパーティションをリカバリするよう動作する。
【００９８】
当業者は、コーディネータ１５００は、以前の例示的な実施形態において記載されたコーディネータ５１０、６１０および７１０の例示的な実現例であるということを理解し得る。当業者はさらに、本発明の原理に従って、上述したようなオペレーションのいずれかまたはその組合せを実行するよう、コーディネータ１５００およびそのコンポーネントが所望のように修正され得るということを理解し得る。
【００９９】
図１６を参照して、本発明の実施形態に従ったシステム１６００が示される。図１６は、システム１６００によって実現される機能的な構成の図を示す。システム１６００は、永続ストレージ１６１０、マネージャ１６２０、複数のメンバー１６３０、コーディネータ１６４０、およびコンセンサス形成部１６５０を含む。
【０１００】
永続ストレージ１６１０は、１つ以上のキャッシュサービスに関連付けられる複数のパーティションを格納する。マネージャ１６２０は、分散データグリッドにおける複数のメンバー１６３０が、永続ストレージ１６１０において１つ以上のキャッシュサービスに関連付けられる複数のパーティションを管理することを可能にする。コーディネータ１６４０は、分散データグリッドにおける複数のメンバー１６３０の間でパーティションオーナーシップのビューを同期する。コンセンサス形成部１６５０は、どのパーティションが分散データグリッドにおけるどのメンバーからリカバリされるかについての分散コンセンサスを、同期されたビューに基づいて形成する。
【０１０１】
図１７は、周知のハードウェア要素を含むコンピュータシステム１７００の図を示す。すなわち、コンピュータシステム１７００は、中央処理装置（ＣＰＵ）１７１０、マウス１７２０、キーボード１７３０、ランダムアクセスメモリ（ＲＡＭ）１７４０、ハードディスク１７５０、ディスクドライブ１７６０、通信インターフェイス（Ｉ／Ｆ）１７７０、およびモニタ１７８０を含む。コンピュータシステム１７００は、複数のメンバー１６３０のうちのメンバーであり得る。
【０１０２】
ある局面において、マネージャ１６２０、コーディネータ１６４０およびコンセンサス形成部１６５０は、ＣＰＵ１７１０によって実現される。さらなる局面では、マネージャ１６２０、コーディネータ１６４０およびコンセンサス形成部１６５０が実現されるように、１つより多いプロセッサが使用され得る。すなわち、マネージャ１６２０、コーディネータ１６４０およびコンセンサス形成部１６５０のうちのいずれかは互いから物理的に遠隔である。
【０１０３】
さらに別の局面において、システム１６００は、マネージャ１６２０、コーディネータ１６４０および／またはコンセンサス形成部１６５０として機能する複数のハードワイヤード回路を使用することにより実現され得る。
【０１０４】
本発明は、１つ以上のプロセッサ、メモリ、および／または本開示の教示に従ってプログラムされたコンピュータ読取可能な記録媒体を含む１つ以上の従来の汎用または専用デジタルコンピュータ、コンピューティングデバイス、マシン、またはマイクロプロセッサを用いて簡便に実施され得る。ソフトウェア技術の当業者には明らかであるように、適切なソフトウェアコーディングは、熟練したプログラマによって本開示の教示に基づき容易に用意され得る。
【０１０５】
いくつかの実施形態では、本発明は、本発明の処理のいずれかを実行するようコンピュータをプログラムするのに用いられ得る命令を格納したストレージ媒体またはコンピュータ読取可能媒体であるコンピュータプログラムプロダクトを含む。当該記憶媒体は、フロッピーディスク（登録商標）、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、および光磁気ディスクを含む任意のタイプのディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリ素子、磁気または光学カード、ナノシステム（分子メモリＩＣを含む）、または命令および／またはデータを格納するのに好適な任意のタイプの媒体もしくは装置を含み得るが、これらに限定されない。
【０１０６】
本発明の上記の記載は、例示および説明目的で与えられている。網羅的であることまたは開示されたそのものの形態に本発明を限定することを意図したものではない。当業者にとっては、多くの修正例および変形例が明確であろう。上記修正例および変形例は、記載された機能の任意の関連する組合せを含む。上記の実施形態は、本発明の原理およびその実際的な適用を最もよく説明するために選択および記載されたものであり、これにより他の当業者が、特定の使用に好適なさまざまな修正例を考慮して、さまざまな実施形態について本発明を理解するのが可能になる。本発明の範囲は、添付の特許請求の範囲およびそれらの均等物によって定義されることが意図される。
【図１】
0006491210.tif 000002
【図２】
0006491210.tif 000003
【図３】
0006491210.tif 000004
【図４】
0006491210.tif 000005
【図５】
0006491210.tif 000006
【図６】
0006491210.tif 000007
【図７】
0006491210.tif 000008
【図８】
0006491210.tif 000009
【図９】
0006491210.tif 000010
【図１０】
0006491210.tif 000011
【図１１】
0006491210.tif 000012
【図１２】
0006491210.tif 000013
【図１３】
0006491210.tif 000014
【図１４】
0006491210.tif 000015
【図１５】
0006491210.tif 000016
【図１６】
0006491210.tif 000017
【図１７】
0006491210.tif 000018