Package org.infinispan.conflict
Enum MergePolicy
- All Implemented Interfaces:
Serializable,Comparable<MergePolicy>,EntryMergePolicy
-
Nested Class Summary
Nested Classes -
Enum Constant Summary
Enum Constants -
Method Summary
Modifier and TypeMethodDescriptionstatic MergePolicyfromConfiguration(EntryMergePolicy policy) static MergePolicyfromString(String str) merge(CacheEntry preferredEntry, List otherEntries) This method is called byConflictManager.resolveConflicts()for each conflict discovered to determine whichCacheEntryshould be utilised.static MergePolicyReturns the enum constant of this type with the specified name.static MergePolicy[]values()Returns an array containing the constants of this enum type, in the order they are declared.
-
Enum Constant Details
-
CUSTOM
-
NONE
-
PREFERRED_ALWAYS
-
PREFERRED_NON_NULL
-
REMOVE_ALL
-
-
Method Details
-
values
Returns an array containing the constants of this enum type, in the order they are declared.- Returns:
- an array containing the constants of this enum type, in the order they are declared
-
valueOf
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)- Parameters:
name- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException- if this enum type has no constant with the specified nameNullPointerException- if the argument is null
-
merge
Description copied from interface:EntryMergePolicyThis 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.- Specified by:
mergein interfaceEntryMergePolicy- 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 toConflictManager.resolveConflicts(), the preferredEntry is simply the primary owner of an entryotherEntries- aListof all otherCacheEntryassociated with a given Key.- Returns:
- the winning
CacheEntryto be utilised across the cluster, or null if all entries for a key should be removed.
-
fromString
-
fromConfiguration
-