Package com.tangosol.net.partition
Interface KeyPartitioningStrategy
-
- All Known Implementing Classes:
BroadKeyPartitioningStrategy
,DefaultKeyPartitioningStrategy
public interface KeyPartitioningStrategy
A KeyPartitioningStrategy is a pluggable strategy for assigning keys to specific partitions.Note: as of Coherence 3.6 the contract of the
getKeyPartition
method has changed and should take into consideration the service'skey associator
.- Since:
- Coherence 3.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interface
KeyPartitioningStrategy.PartitionAwareKey
PartitionAwareKey is a well-known interface that should be respected byKeyPartitioningStrategy
implementations.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method 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.
-
-
-
Method Detail
-
init
void init(PartitionedService service)
Initialize the KeyPartitioningStrategy and bind it to the specified PartitionedService.- Parameters:
service
- the PartitionedService that this strategy is being bound to
-
getKeyPartition
int getKeyPartition(Object oKey)
Determine the partition to which a particular key should be assigned.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 theKeyPartitioningStrategy.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()
.- Parameters:
oKey
- a key in its Object form- Returns:
- the partition ID that the specified key is assigned to
- See Also:
PartitionedService.getPartitionOwner(int)
-
getAssociatedPartitions
PartitionSet getAssociatedPartitions(Object oKey)
Determine the set of partitions that all keys associated with the specified key are assigned to. Most commonly, this method returns a partition set containing a single partition returned by thegetKeyPartition
method.- Parameters:
oKey
- a key in its Object form- Returns:
- the PartitionSet associated with the specified key
- Since:
- Coherence 3.6
-
-