コンテナー・サーバー、区画、および断片

コンテナー・サーバーは、データ・グリッドのアプリケーション・データを 保管します。通常、このデータは区画と呼ばれるパーツに分割され、 複数のコンテナー・サーバーでホストされます。これを受けて各コンテナー・サーバーは、完全なデータのサブセットを ホストします。JVM は 1 つ以上のコンテナー・サーバーをホストすることができ、 各コンテナー・サーバーは複数の断片をホストできます。

要確認: すべてのデータをホストする コンテナー・サーバーのヒープ・サイズを計画してください。 それにあわせて、ヒープ設定を適宜構成してください。
図 1. コンテナー・サーバー
Java 仮想マシン内にコンテナー・サーバーがあり、多くの断片をホストしています。
区画は、グリッド内のデータのサブセットをホストします。WebSphere® eXtreme Scale は、 自動的に複数の区画を単一コンテナー・サーバーに配置し、追加のコンテナー・サーバーが使用可能になると それらに区画を分散させます。
重要: 区画の数は動的に変更できないため、 最終的なデプロイメントの前に、区画の数を慎重に選択してください。 ネットワーク内での区画の配置にはハッシュ・メカニズムが使用され、いったんデプロイされた後でデータ・セット全体を eXtreme Scale が再ハッシュすることはできません。 一般に、区画の数は多めに見積もって構いません。
図 2. 区画
断片とは区画のインスタンスであり、プライマリーまたはレプリカの 2 つのロールの いずれか 1 つを持ちます。プライマリー断片とそのレプリカによって、区画の物理的な実体が構成されます。各区画はいくつかの断片 を持ち、それぞれの断片が、その区画に含まれるデータ全体をホストします。 1 つの断片がプライマリー断片であり、他はレプリカ断片です。レプリカ断片は、プライマリー断片に含まれているデータの 冗長コピーです。プライマリー断片は、トランザクションからキャッシュへの書き込みが可能な唯一の区画インスタンスです。レプリカ断片は、「ミラーリングされた」区画インスタンスです。レプリカ断片は、同期または非同期にプライマリー断片から更新内容を受信します。レプリカ断片の場合、トランザクションはキャッシュからの読み取りのみが可能です。レプリカは、プライマリーと同じコンテナー・サーバーではホストされません。また、通常はプライマリーと同じマシン上ではホストされません。
図 3. 断片
1 つの断片が複数のマップを含んでいます。

データの可用性を向上させる、 または永続性の保証を高めるには、 データを複製する必要があります。ただし、レプリカ生成はトランザクションのコストを増加させるため、 可用性と引き換えにパフォーマンスが犠牲になります。eXtreme Scale では、 同期レプリカ生成と非同期レプリカ生成のサポートに加え、同期と非同期の両方のレプリカ生成モードを使用する ハイブリッド・レプリカ生成モデルがサポートされるため、 このコストをコントロールできます。同期レプリカ断片は、データ整合性を保証するため、 プライマリー断片のトランザクションの一部として更新内容を受信します。 トランザクション完了の前に、プライマリーと同期レプリカの両方で トランザクションをコミットする必要があるため、 同期レプリカでは応答時間が倍の長さになることがあります。非同期レプリカ断片は、 パフォーマンスへの影響を制限するために、トランザクションがコミットされた後に更新内容を受信します。 しかし、非同期レプリカでは、プライマリーよりトランザクションがいくつか遅れることがあるため、 非同期レプリカ断片でデータ損失の可能性が生じます。

図 4. ObjectGrid
ObjectGrid