5.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 への移行プロセスが簡単になります。
5.2.1. ローカルモードの設定
ローカルキャッシュは、ライブラリーモードとリモートクライアントサーバーの両方で、すべてのキャッシュコンテナーに追加することができます。以下の例は、
local-cache
要素を追加する方法について説明しています。
手順5.2 local-cache
要素
<cache-container name="local" default-cache="default" statistics="true"> <local-cache name="default" start="EAGER" batching="false" statistics="true"> <!-- Additional configuration information here --> </local-cache>
local-cache
要素は次のパラメーターを使用して、キャッシュコンテナーと共に使用されるローカルキャッシュに関する情報を指定します。
name
パラメーターは使用するローカルキャッシュの名前を指定します。start
パラメーターはいつキャッシュコンテナーが起動するかを示します (要求時にレイジーに起動するか、またはサーバー起動時に「すぐに (eargerly)」起動するかなど)。このパラメーターの有効な値はEAGER
とLAZY
です。batching
パラメーターは、ローカルキャッシュに対してバッチ処理が有効であるかを指定します。statistics
がコンテナーレベルで有効にされている場合、statistics
属性をfalse
に設定することにより、キャッシュごとの統計は、監視を必要としないキャッシュについては選択的に無効にすることができます。
この代わりに、引数のないコンストラクターで
DefaultCacheManager
を作成することもできます。どちらの方法でも、ローカルのデフォルトキャッシュが作成されます。
ローカルキャッシュとクラスター化されたキャッシュは同じキャッシュコンテナーで共存できますが、コンテナーに
<transport/>
がない場合はローカルキャッシュのみ格納できます。例で使用されたコンテナーには <transport/>
がないため、ローカルキャッシュのみを格納できます。
キャッシュインターフェースは
ConcurrentMap
を拡張し、複数のキャッシュシステムと互換性があります。