インライン・キャッシュ

インライン・キャッシングは、データベース・バックエンドに構成することも、データベースのサイド・キャッシュとして構成することもできます。インライン・キャッシングは、データと対話するための基本手段として eXtreme Scale を 使用します。eXtreme Scale がインライン・キャッシュとして使用される場合、 アプリケーションは、Loader プラグインを使用してバックエンドと対話します。

インライン・キャッシュ

インライン・キャッシュとして 使用される場合、WebSphere® eXtreme Scale は Loader プラグインを使用してバックエンドと対話します。このシナリオでは、 アプリケーションが直接 eXtreme Scale API にアクセスできるため、データ・アクセスが単純化されます。キャッシュ内のデータとバックエンドのデータが確実に同期されるようにするための数種類のキャッシング・シナリオが、eXtreme Scale においてポートされています。 次の図は、 インライン・キャッシュがアプリケーションおよびバックエンドと対話する方法を 示しています。
図 1. インライン・キャッシュ
インライン・キャッシュ: Loader プラグインは、データベースとデータ・グリッド間の統合に使用します。アプリケーションは、データ・グリッドにアクセスします。
インライン・キャッシング・オプションにより、アプリケーションが eXtreme Scale API に直接アクセスできるようになるため、データ・アクセスが単純化されます。 WebSphere eXtreme Scale は、以下のような複数のインライン・キャッシング・シナリオをサポートします。
  • リードスルー
  • ライトスルー
  • 後書き

リードスルー・キャッシングのシナリオ

リードスルー・キャッシュは、データ・エントリーの要求時にキーによるそのロードが暫時的に行われるスパース・キャッシュです。これが行われる場合、呼び出し元は、エントリーがどのように取り込まれるかを知る必要はありません。データが eXtreme Scale キャッシュに見つからない場合、eXtreme Scale は、その欠落データを Loader プラグインから取得します。このプラグインは、バックエンド・データベースからデータをロードして、そのデータをキャッシュに挿入します。 同じデータ・キーに対する後続の要求は、削除、無効化、または除去されるまでキャッシュに存在します。
図 2. リードスルー・キャッシング
ローダーを使用したリードスルー・キャッシング

ライトスルー・キャッシングのシナリオ

ライトスルー・キャッシュでは、キャッシュへの書き込みが行われるたびに、ローダーを使用してデータベースへの書き込みが同期的に行われます。このメソッドでは、バックエンドとの整合性はありますが、データベース操作が同期されるため、書き込みパフォーマンスは低下します。 キャッシュとデータベースがともに更新されるため、同じデータに対する後続の読み取りはキャッシュに残り、データベース呼び出しが回避されます。 ライトスルー・キャッシュは、多くの場合、リードスルー・キャッシュと一緒に使用されます。
図 3. ライトスルー・キャッシング
ローダーを使用したライトスルー・キャッシング

後書きキャッシングのシナリオ

変更を非同期的に書き込むことにより、データベースの同期性が改善されます。後書きキャッシュまたはライト・バック・キャッシュとも呼ばれます。通常はローダーに対して同期的に書き込まれる変更は、eXtreme Scale 内でバッファー化されてから、バックグラウンド・スレッドを使用してデータベースに書き込まれます。データベース操作をクライアント・トランザクションから除去し、データベース書き込みを圧縮できるため、書き込みパフォーマンスが著しく向上します。
図 4. 後書きキャッシング
ローダーを使用する後書きキャッシング