Class HigherHitsMergePolicy<K,V>
java.lang.Object
com.loomcache.server.wan.merge.HigherHitsMergePolicy<K,V>
- Type Parameters:
K- key typeV- value type
- All Implemented Interfaces:
MergePolicy<K,V>
Merge policy that keeps the entry with the higher successful-read count.
When hit counts tie, the policy falls back to the same deterministic
timestamp and writer-id ordering as LatestUpdateMergePolicy so two
clusters observing the same pair of entries converge to the same value.
- 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 HigherHitsMergePolicy <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
-
HigherHitsMergePolicy
public HigherHitsMergePolicy()
-
-
Method Details
-
instance
Return the shared instance of this stateless policy.- Type Parameters:
K- key typeV- value type- Returns:
- a shared
HigherHitsMergePolicyinstance
-
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)
-