データのプリロードおよびウォームアップ

ローダーのユーザーを組み込む多くのシナリオで、データ・グリッドをデータと一緒にプリロードして準備しておくことができます。

データ・グリッドは、完全キャッシュとして使用される場合、データのすべて を保持しなければならず、いずれかのクライアントが接続する前にデータがロードされている必要があります。スパース・キャッシュを使用する場合は、 クライアントが接続時にデータにすぐにアクセスできるよう、キャッシュをデータでウォームアップしておくことができます。

以下のセクションで説明するように、データをデータ・グリッドにプリロードする方法は 2 つあります。1 つは Loader プラグインを使用する方法で、もう 1 つはクライアント・ローダーを使用する方法です。

Loader プラグイン

Loader プラグインは、各マップに関連付けられ、1 つのプライマリー区画断片をデータベースと 同期化させる役割を担います。断片がアクティブになると、Loader プラグインの preloadMap メソッド が自動的に呼び出されます。 例えば、100 の区画がある場合、ローダーのインスタンスは 100 存在し、それぞれが、各自の区画のためにデータをロードします。同期的に実行された場合、プリロードが完了するまですべてのクライアントがブロックされます。

図 1. Loader プラグイン
Loader プラグイン: プライマリー断片にローダーのインスタンスがあります

詳しくは、データベースとの通信のためのプラグインを参照してください。

クライアント・ローダー

クライアント・ローダーは、1 つ以上のクライアントを使用してグリッドにデータをロードする パターンです。複数のクライアントを使用してグリッドにデータをロードすることは、 区画スキーマがデータベースに保管されない場合は効率的 です。クライアント・ローダーは手動で呼び出すか、データ・グリッドの開始時に自動的に 呼び出すことができます。データ・グリッドにデータをプリロードしている間はクライアントがデータ・グリッドにアクセス できないように、クライアント・ローダーは、オプションで、StateManager を使用してデータ・グリッドの状態をプリロード・モード に設定できます。WebSphere® eXtreme Scale には Java Persistence API (JPA) ベースの ローダーが組み込まれていて、OpenJPA または Hibernate JPA プロバイダーのどちらかでデータ・グリッドに自動的にロードするために使用できます。キャッシュ・プロバイダーについて詳しくは、JPA レベル 2 (L2) キャッシュ・プラグインを参照してください。

図 2. クライアント・ローダー
JPA プロバイダーを使用するクライアント・ローダー