Class PassThroughMergePolicy<K,V>
java.lang.Object
com.loomcache.server.wan.merge.PassThroughMergePolicy<K,V>
- Type Parameters:
K- key typeV- value type
- All Implemented Interfaces:
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
-
Nested Class Summary
Nested classes/interfaces inherited from interface MergePolicy
MergePolicy.MergeEntry<V> -
Field Summary
Fields inherited from interface MergePolicy
NO_EXPIRATION_TIME_MILLIS -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <K,V> @NonNull PassThroughMergePolicy <K, V> instance()Return the shared instance of this stateless policy.merge(@NonNull K key, @NonNull MergePolicy.MergeEntry<V> incoming, @Nullable MergePolicy.MergeEntry<V> existing) Merge an incoming replication entry against the existing local entry.
-
Constructor Details
-
PassThroughMergePolicy
public PassThroughMergePolicy()
-
-
Method Details
-
instance
Return the shared instance of this stateless policy.- Type Parameters:
K- key typeV- value type- Returns:
- a shared
PassThroughMergePolicyinstance
-
merge
public @NonNull Optional<V> merge(@NonNull K key, @NonNull MergePolicy.MergeEntry<V> incoming, @Nullable MergePolicy.MergeEntry<V> existing) Description copied from interface:MergePolicyMerge an incoming replication entry against the existing local entry.- Specified by:
mergein interfaceMergePolicy<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, ornullif the key has no local value- Returns:
- the value to keep (non-empty to apply, empty to reject the incoming)
-