8.6. レプリケーションキュー
レプリケーションモードでは、以下を基にして、Red Hat JBoss Data Grid はレプリケーションキューを使用し、ノード全体で変更をレプリケートします。
- 以前に設定された間隔。
- 要素数を超えるキューサイズ。
- 以前に設定された間隔と要素数を超えるキューサイズの組み合わせ。
レプリケーションキューは、レプリケート中にキャッシュ操作が個別に送信されるのではなく、一括送信されるようにします。そのため、送信されるレプリケーションメッセージの数が減り、使用されるエンベロープも少なくなるため、JBoss Data Grid のパフォーマンスが向上します。
レプリケーションキューを使用する場合の難点は、時間やキューサイズを基にキューが周期的にフラッシュされることです。このようなフラッシュ操作は、クラスターノード全体のレプリケーション、分散、または無効化の操作を遅延させます。レプリケーションキューを無効にすると、データは直接送信されるため、クラスターノードへ達する時間が短くなります。
レプリケーションキューは非同期モードと共に使用されます。
8.6.1. レプリケーションキューの使用
レプリケーションキューを使用する場合、以下の 1 つを実行します。
- 非同期マーシャリングを無効にします。
max-threads数の値を、transport executorに対して1に設定します。transport executorは次のようにstandalone.xmlまたはclustered.xmlで定義されます。<transport executor="infinispan-transport"/>
これらの方法の 1 つを実装するには、レプリケーションキューを非同期モードで使用する必要があります。非同期モードは、キュータイムアウト (
queue-flush-interval、値はミリ秒単位) やキューサイズ (queue-size) と共に次のように設定することができます。
例8.1 非同期モードのレプリケーションキュー
<replicated-cache name="asyncCache"
start="EAGER"
mode="ASYNC"
batching="false"
indexing="NONE"
statistics="true"
queue-size="1000"
queue-flush-interval="500">
<!-- Additional configuration information here -->
</replicated-cache>
レプリケーションキューにより、要求がクライアントへ返されるまでの時間が短縮されるため、レプリケーションキューを非同期マーシャリングと共に使用しても大きな利点はありません。