Class PassThroughMergePolicy<K,V>

java.lang.Object
com.loomcache.server.wan.merge.PassThroughMergePolicy<K,V>
Type Parameters:
K - key type
V - value type
All Implemented Interfaces:
MergePolicy<K,V>

public final class PassThroughMergePolicy<K,V> extends Object implements MergePolicy<K,V>
Unconditional overwrite merge policy.

Always accepts the incoming value, overwriting any existing local value. Useful when the source cluster is authoritative (active-passive mode from a single writer) and the replica should mirror it byte-for-byte.

Warning: In active-active topologies this policy causes divergence — use LatestUpdateMergePolicy instead.

Since:
2.0
  • Constructor Details

    • PassThroughMergePolicy

      public PassThroughMergePolicy()
  • Method Details

    • instance

      public static <K,V> @NonNull PassThroughMergePolicy<K,V> instance()
      Return the shared instance of this stateless policy.
      Type Parameters:
      K - key type
      V - value type
      Returns:
      a shared PassThroughMergePolicy instance
    • merge

      public @NonNull Optional<V> merge(@NonNull K key, @NonNull MergePolicy.MergeEntry<V> incoming, @Nullable MergePolicy.MergeEntry<V> existing)
      Description copied from interface: MergePolicy
      Merge an incoming replication entry against the existing local entry.
      Specified by:
      merge in interface MergePolicy<K,V>
      Parameters:
      key - the key being replicated (non-null)
      incoming - the incoming entry from the remote cluster (non-null)
      existing - the current local entry, or null if the key has no local value
      Returns:
      the value to keep (non-empty to apply, empty to reject the incoming)