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's key associator.

Since:
Coherence 3.0
  • Method Details

    • 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 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().

      Parameters:
      oKey - a key in its Object form
      Returns:
      the partition ID that the specified key is assigned to
      See Also:
    • 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 the getKeyPartition method.
      Parameters:
      oKey - a key in its Object form
      Returns:
      the PartitionSet associated with the specified key
      Since:
      Coherence 3.6