public enum MergePolicy extends java.lang.Enum<MergePolicy> implements EntryMergePolicy
| Modifier and Type | Class and Description |
|---|---|
static class |
MergePolicy.UnsupportedMergePolicy |
| Enum Constant and Description |
|---|
CUSTOM |
NONE |
PREFERRED_ALWAYS |
PREFERRED_NON_NULL |
REMOVE_ALL |
| Modifier and Type | Method and Description |
|---|---|
static MergePolicy |
fromConfiguration(EntryMergePolicy policy) |
static MergePolicy |
fromString(java.lang.String str) |
CacheEntry |
merge(CacheEntry preferredEntry,
java.util.List otherEntries)
This method is called by
ConflictManager.resolveConflicts() for each conflict discovered to determine
which CacheEntry should be utilised. |
static MergePolicy |
valueOf(java.lang.String name)
Returns 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.
|
public static final MergePolicy CUSTOM
public static final MergePolicy NONE
public static final MergePolicy PREFERRED_ALWAYS
public static final MergePolicy PREFERRED_NON_NULL
public static final MergePolicy REMOVE_ALL
public static MergePolicy[] values()
for (MergePolicy c : MergePolicy.values()) System.out.println(c);
public static MergePolicy valueOf(java.lang.String name)
name - the name of the enum constant to be returned.java.lang.IllegalArgumentException - if this enum type has no constant with the specified namejava.lang.NullPointerException - if the argument is nullpublic CacheEntry merge(CacheEntry preferredEntry, java.util.List otherEntries)
EntryMergePolicyConflictManager.resolveConflicts() for each conflict discovered to determine
which CacheEntry should be utilised. This merge policy is used when a user explicitly calls ConflictManager.resolveConflicts()
as well as when a partition merge occurs with PartitionHandling.ALLOW_READ_WRITES set.
In the event of a partition merge, we define the preferred partition as the partition whom's coordinator is coordinating
the current merge.merge in interface EntryMergePolicypreferredEntry - 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 entryotherEntries - a List of all other CacheEntry associated with a given Key.CacheEntry to be utilised across the cluster, or null if all entries for a key should be
removed.public static MergePolicy fromString(java.lang.String str)
public static MergePolicy fromConfiguration(EntryMergePolicy policy)