public interface KeyPartitioningStrategy
Note: as of Coherence 3.6 the contract of the getKeyPartition
method has changed and should take
into consideration the service's key associator
.
Modifier and Type | Interface and Description |
---|---|
static interface |
KeyPartitioningStrategy.PartitionAwareKey
PartitionAwareKey is a well-known interface that should be respected by
KeyPartitioningStrategy implementations. |
Modifier and Type | Method and Description |
---|---|
PartitionSet |
getAssociatedPartitions(Object oKey)
Determine the set of partitions that all keys associated with the
specified key are assigned to.
|
int |
getKeyPartition(Object oKey)
Determine the partition to which a particular key should be assigned.
|
void |
init(PartitionedService service)
Initialize the KeyPartitioningStrategy and bind it to the specified
PartitionedService.
|
void init(PartitionedService service)
service
- the PartitionedService that this strategy is being
bound toint getKeyPartition(Object oKey)
In general, implementations are expected to respect the associations
provided by the service's KeyAssociator in such a way that keys that
return the same associated
key
would be assigned to the same partition. Furthermore,
implementations are also expected to respect explicit
partition-assignments dictated by the KeyPartitioningStrategy.PartitionAwareKey
interface.
Naturally, those two interfaces should not be combined for a given key.
The resulting partition must be in the range [0..N-1], where
N is the value returned from
PartitionedService.getPartitionCount()
.
oKey
- a key in its Object formPartitionedService.getPartitionOwner(int)
PartitionSet getAssociatedPartitions(Object oKey)
getKeyPartition
method.oKey
- a key in its Object form