2.5. 競合解決アルゴリズムのカスタマイズ

別のアルゴリズムを使用してバックアップの場所間の競合するエントリーを解決するように Data Grid を設定します。

手順

  1. Data Grid 設定を開いて編集します。
  2. Data Grid アルゴリズムまたはカスタム実装のいずれかを、backups 要素の merge-policy 属性で指定します。

Data Grid アルゴリズムの使用

org.infinispan.xsite.spi.XSiteMergePolicy 列挙で、すべての Data Grid アルゴリズムと説明を検索します。

以下の設定例では、両方のサイトから競合するエントリーを削除する ALWAYS_REMOVE アルゴリズムを使用します。

<distributed-cache name="eu-customers">
   <backups merge-policy="ALWAYS_REMOVE">
      <backup site="LON" strategy="ASYNC"/>
   </backups>
</distributed-cache>

カスタム実装の使用

  1. カスタムの XSiteEntryMergePolicy 実装を作成します。

    public interface XSiteEntryMergePolicy<K, V> {
       CompletionStage<SiteEntry<V>> merge(K key, SiteEntry<V> localEntry, SiteEntry<V> remoteEntry);
    }
  2. 以下の例のように、merge-policy 属性の値として完全修飾クラス名を指定します。

    <distributed-cache name="eu-customers">
       <backups merge-policy="org.mycompany.MyCustomXSiteEntryMergePolicy">
          <backup site="LON" strategy="ASYNC"/>
       </backups>
    </distributed-cache>