V- the (deserialized) type of the merging value
T- the type of the required merging value, e.g. a simple
MergingValue<V>or a composition like
MergingEntry<String, V> & MergingHits & MergingLastAccessTime
R- the type of the merged value as returned by
public interface SplitBrainMergePolicy<V,T extends MergingValue<V>,R> extends DataSerializable
The values of merging and existing
always in the in-memory format of the backing data structure.
This can be a serialized format, so the content cannot be
processed without deserialization. For most merge policies
this will be fine, since the key or value are not used.
The deserialization is not done eagerly for two main reasons:
InMemoryFormat.BINARYwith a different classpath on client and server. In this case a deserialization could throw a
MergingEntry.getKey(), which will deserialize the data lazily.
A merge policy can implement
HazelcastInstanceAware to get the
HazelcastInstance injected. This can be used to retrieve the
user context via
HazelcastInstance.getUserContext(), which is
an easy way to get user dependencies that are otherwise hard to obtain.
A merge policy can also implement
to get an instance of
|Modifier and Type||Method and Description|
Selects the value of either the merging or the existing
R merge(T mergingValue, T existingValue)
MergingValuewhich should be merged.
Note that the existing
MergingValue instance may be
if no matching data could be found to the merging
MergingValueinstance that has the merging data of the smaller sub-cluster
MergingValueinstance that has the existing data or
nullif no matching data exists
Copyright © 2021 Hazelcast, Inc.. All rights reserved.