eXtreme Scale 内の Cache API
Cache API は、JCache API に記載されているように動作します。 仕様にはニア・キャッシュの操作方法についてのルールが明記されていないため、このトピックでは、各キャッシュ・メソッドがニア・キャッシュに与える影響について説明します。 OPTIMISTIC または NONE のロック・ストラテジーを使用するすべてのキャッシュは、ニア・キャッシュを持つように構成できます。
この表で、X はキーを表しています。 A は、キーに関連付けられているニア・キャッシュ値です。 B は、キーに関連付けられているファー・キャッシュ値です。 C は、キャッシュに入れられる新規値です。 各行は、キャッシュ・メソッドになります。 各列は、ニア・キャッシュ内とファー・キャッシュ内のエントリーの値を示しています。 特定のキャッシュ・メソッドについて、ニア値とファー値を含む列を見つけて、戻り値と振る舞いを確認してください。 例えば、 getAndPut(X,C) メソッドの場合、 near=null および far=Bであれば、このメソッドは以下を返します。Bnear および far を以下のように設定します。C.
| キャッシュ・メソッド | near=A および far=B の場合 |
near=null および far=B の場合 |
near=A および far=null の場合 |
|---|---|---|---|
getAndPut(X,C) |
復帰A. near=far=C |
復帰B. near=far=C |
復帰A. near=far=C |
getAndRemove(X) |
復帰A. near=far=null |
復帰B. near=far=null |
復帰A. near=far=null |
getAndReplace(X,C) |
復帰A. near=far=C |
復帰B. near=far=C |
復帰null. near=far=null |
putIfAbsent(X,C) |
復帰false何もしない | 復帰false何もしない | 復帰true. near=far=C |
remove(X) |
復帰true. near=far=null |
復帰true. near=far=null |
復帰false. near=far=null |
remove(X,A) |
復帰false何もしない | 復帰false何もしない | 復帰false. near=far=null |
remove(X,B) |
復帰true. near=far=null |
復帰true. near=far=null |
復帰false. near=far=null |
replace(X,C) |
復帰true. near=far=C |
復帰true. near=far=C |
復帰false. near=far=null |
replace(X,C,A) |
復帰false何もしない | 復帰false何もしない | 復帰false. near=far=null |
replace(X,C,B) |
復帰true. near=far=C |
復帰true. near=far=C |
復帰false. near=far=null |