Package com.tangosol.net.partition
Interface DistributionManager
public interface DistributionManager
A DistributionManager coordinates the distribution of partitions for a
partitioned service. The DistributionManager relies on a pluggable
PartitionAssignmentStrategy
to analyze the current state of the partition
usage, and formulate a desired distribution plan. The DistributionManager
is responsible for gathering and providing to the strategy the state
necessary to make distribution decisions, as well as collecting and enacting
the formulated distribution recommendations.
The DistributionManager provides a consistent and stable view of
Service-related state for the duration of the call to PartitionAssignmentStrategy.analyzeDistribution()
.
- Since:
- Coherence 3.7
- Author:
- rhl 2010.10.22
-
Method Summary
Modifier and TypeMethodDescriptionReturn a set of partitions from the previous suggestions that were ignored or rejected.getMember
(int nMemberId) Return the ownership-enabled service member with the specified mini-id, or null if the member does not exist.getOwnedPartitions
(Member member, int iStore) Return the set of partitions for which the specified member owns the specified storage index (replica).Return the set of ownership-enabled members in the partitioned service that are in the process of leaving.Return the set of ownership-enabled members in the partitioned service.getPartitionOwnership
(int nPartition) Return the Ownership information for the specified partition.Return an array of the most recently available partition statistics, indexed by partition-id.long
Return the sampling period at which partition statistics are collected.Return the partitioned service for which this DistributionManager coordinates the distribution.void
scheduleNextAnalysis
(long cMillis) Schedule the next distribution analysis in the specified time interval.void
suggest
(PartitionSet parts, Ownership ownership) Suggest a distribution change for the specified set of partitions, indicating either primary or backup transfer (or both).
-
Method Details
-
getService
PartitionedService getService()Return the partitioned service for which this DistributionManager coordinates the distribution.- Returns:
- the partitioned service
-
getMember
Return the ownership-enabled service member with the specified mini-id, or null if the member does not exist.- Parameters:
nMemberId
- the mini-id- Returns:
- the ownership-enabled service member with the specified mini-id, or null
-
getOwnershipMembers
Return the set of ownership-enabled members in the partitioned service.- Returns:
- the set of ownership-enabled members
-
getOwnershipLeavingMembers
Return the set of ownership-enabled members in the partitioned service that are in the process of leaving.- Returns:
- the set of ownership-enabled members that are leaving
-
getOwnedPartitions
Return the set of partitions for which the specified member owns the specified storage index (replica).- Parameters:
member
- the member to determine the the ownership foriStore
- the storage index (zero for primary)- Returns:
- the set of partitions
- Throws:
IllegalArgumentException
- if the backup number is non-positive or greater than the backup count for this partitioned service
-
getPartitionOwnership
Return the Ownership information for the specified partition.- Parameters:
nPartition
- the partition to return the ownership for- Returns:
- Ownership information for the specified partition
- Throws:
IllegalArgumentException
- if the partition number is negative or greater than the partition count for this partitioned service
-
suggest
Suggest a distribution change for the specified set of partitions, indicating either primary or backup transfer (or both). The desired transfer is specified as the ownership that would result from enacting the transfer.Note: this method does not in any way enforce or guarantee that the specified transfers are performed; it merely provides advice
- Parameters:
parts
- the set of partitions to perform distribution onownership
- the desired ownership
-
getIgnoredAdvice
PartitionSet getIgnoredAdvice()Return a set of partitions from the previous suggestions that were ignored or rejected.- Returns:
- partitions that were suggested for an ownership change, but those changes were rejected by the service
- Since:
- Coherence 12.2.1
-
scheduleNextAnalysis
void scheduleNextAnalysis(long cMillis) Schedule the next distribution analysis in the specified time interval.This method may influence, but does not guarantee the time of the next distribution analysis. This method may be called on any thread but has an effect only if this member is currently the distribution coordinator.
- Parameters:
cMillis
- the delay (in ms) before the next analysis (must be > 0)- Since:
- Coherence 12.1.2
-
getSamplingPeriod
long getSamplingPeriod()Return the sampling period at which partition statistics are collected.- Returns:
- the sampling period in milliseconds
-
getPartitionStats
PartitionStatistics[] getPartitionStats()Return an array of the most recently available partition statistics, indexed by partition-id.- Returns:
- an array of the most recently available partition statistics
-