Package org.infinispan.conflict
Interface EntryMergePolicy<K,V> 
- All Known Implementing Classes:
- MergePolicy,- MergePolicy.UnsupportedMergePolicy
public interface EntryMergePolicy<K,V> 
- Since:
- 9.1
- Author:
- Ryan Emerson
- 
Method SummaryModifier and TypeMethodDescriptionmerge(org.infinispan.container.entries.CacheEntry<K, V> preferredEntry, List<org.infinispan.container.entries.CacheEntry<K, V>> otherEntries) This method is called byConflictManager.resolveConflicts()for each conflict discovered to determine whichCacheEntryshould be utilised.
- 
Method Details- 
mergeorg.infinispan.container.entries.CacheEntry<K,V> merge(org.infinispan.container.entries.CacheEntry<K, V> preferredEntry, List<org.infinispan.container.entries.CacheEntry<K, V>> otherEntries) This method is called byConflictManager.resolveConflicts()for each conflict discovered to determine whichCacheEntryshould be utilised. This merge policy is used when a user explicitly callsConflictManager.resolveConflicts()as well as when a partition merge occurs withPartitionHandling.ALLOW_READ_WRITESset. In the event of a partition merge, we define the preferred partition as the partition whom's coordinator is coordinating the current merge.- Parameters:
- preferredEntry- During a partition merge, the preferredEntry is the primary replica of a CacheEntry stored in the partition that contains the most nodes or if partitions are equal the one with the largest topologyId. In the event of overlapping partitions, i.e. a node A is present in the topology of both partitions {A}, {A,B,C}, we pick {A} as the preferred partition as it will have the higher topologId because the other partition's topology is behind. During a non-merge call to- ConflictManager.resolveConflicts(), the preferredEntry is simply the primary owner of an entry
- otherEntries- a- Listof all other- CacheEntryassociated with a given Key.
- Returns:
- the winning CacheEntryto be utilised across the cluster, or null if all entries for a key should be removed.
 
 
-