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>
レプリケーションキューにより、要求がクライアントへ返されるまでの時間が短縮されるため、レプリケーションキューを非同期マーシャリングと共に使用しても大きな利点はありません。