6.2. ローカルモード
マップの代わりに Red Hat JBoss Data Grid のローカルモードを使用すると、多くの利点があります。
簡単なマップでは提供されない次のような機能をキャッシュが提供します。
- データを永続化するライトスルーおよびライトビハインドキャッシュ。
- Java 仮想マシン (JVM) がメモリー不足にならないようにするためのエントリーエビクション。
- 定義された期間後に期限切れになるエントリーのサポート。
JBoss Data Grid は、楽観的および非観的ロックなどの技術を使用してロックの取得を管理する、高パフォーマンスで読み取りをベースとするデータコンテナーを中心に構築されます。
また、JBoss Data Grid は CAS (Compare and Swap) アルゴリズムやその他のロックフリーアルゴリズムも使用するため、スループットの高いマルチ CPU 環境やマルチコア環境を実現します。さらに、JBoss Data Grid のキャッシュ API は JDK の
ConcurrentMap
を拡張するため、マップから JBoss Data Grid への移行プロセスが簡単になります。
6.2.1. ローカルモードの設定 (リモートクライアントサーバーモード)
ローカルキャッシュはすべてのキャッシュコンテナーに追加することができます。以下の例は、
local-cache
要素を追加する方法について説明しています。
手順6.2 local-cache
要素
<cache-container name="local" default-cache="default" statistics="true"> <local-cache name="default" start="EAGER" batching="false" statistics="true"> <indexing index="NONE"> <property name="default.directory_provider">ram</property> </indexing> </local-cache>
local-cache
要素は次のパラメーターを使用して、キャッシュコンテナーと共に使用されるローカルキャッシュに関する情報を指定します。
name
パラメーターは使用するローカルキャッシュの名前を指定します。start
パラメーターはいつキャッシュコンテナーが起動するかを示します (要求時にレイジーに起動するか、またはサーバー起動時に「すぐに (eargerly)」起動するかなど)。このパラメーターの有効な値はEAGER
とLAZY
です。batching
パラメーターは、ローカルキャッシュに対してバッチ処理が有効であるかを指定します。statistics
がコンテナーレベルで有効にされている場合、statistics
属性をfalse
に設定することにより、キャッシュごとの統計は、監視を必要としないキャッシュについては選択的に無効にすることができます。indexing
パラメーターのindex
属性はローカルキャッシュに使用されるインデックス化のタイプを指定します。この属性の有効な値はNONE
、LOCAL
、およびALL
です。
この代わりに、引数のないコンストラクターで
DefaultCacheManager
を作成することもできます。どちらの方法でも、ローカルのデフォルトキャッシュが作成されます。
ローカルキャッシュとクラスター化されたキャッシュは同じキャッシュコンテナーで共存できますが、コンテナーに
<transport/>
がない場合はローカルキャッシュのみ格納できます。例で使用されたコンテナーには <transport/>
がないため、ローカルキャッシュのみを格納できます。
キャッシュインターフェースは
ConcurrentMap
を拡張し、複数のキャッシュシステムと互換性があります。
6.2.2. ローカルモードの設定 (ライブラリーモード)
Red Hat JBoss Data Grid のライブラリーモードでは、キャッシュの
mode
パラメーターを local
に設定することは、クラスタリングモードを指定しないことと同じではありません。後者の場合には、キャッシュのキャッシュマネージャーがトランスポートを定義する場合でも、キャッシュはデフォルトでローカルモードに設定されます。
以下のようにクラスターモードをローカルに設定します。
<clustering mode="local" />