Interface PartitionAssignmentStrategy
-
- All Known Implementing Classes:
MirroringAssignmentStrategy
,NullImplementation.NullPartitionAssignmentStrategy
,SimpleAssignmentStrategy
public interface PartitionAssignmentStrategy
A PartitionAssignmentStrategy is a pluggable strategy used by a PartitionedService to manage partition distribution.The PartitionAssignmentStrategy is initialized when a PartitionedService member becomes the distribution coordinator. The service will periodically ask the strategy to analyze the distribution, and to make distribution recommendations to the
DistributionManager
. Strategies may be stateful (e.g. some strategies may formulate recommendations based on trends over accumulated statistics).- Since:
- Coherence 3.7
- Author:
- rhl 2010.10.22
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description long
analyzeDistribution()
Analyze the distribution and return the desired time interval before the next distribution analysis.void
analyzeOrphans(Map<Member,PartitionSet> mapConstraints)
Analyze and suggest the assignment of orphaned partitions (partitions without an active primary or backup owner) subject to the specified constraints.String
getDescription()
Return a human-readable description of the state of the partition assignment.void
init(DistributionManager manager)
Initialize the PartitionAssignmentStrategy and bind it to the specified DistributionManager.
-
-
-
Method Detail
-
init
void init(DistributionManager manager)
Initialize the PartitionAssignmentStrategy and bind it to the specified DistributionManager. This method is called only on the distribution coordinator, prior its first distributionanalysis
.- Parameters:
manager
- the DistributionManager that this strategy is bound to
-
analyzeOrphans
void analyzeOrphans(Map<Member,PartitionSet> mapConstraints)
Analyze and suggest the assignment of orphaned partitions (partitions without an active primary or backup owner) subject to the specified constraints. For each partition, the supplied constraints specify the set of members which are eligible to be assigned the ownership.The strategy must provide suggestions for all orphaned partitions which are consistent with the supplied constraints. Failure to provide a complete set of valid suggestions may result in the loss of partition data.
- Parameters:
mapConstraints
- the map of assignment constraints associating members with the set of partitions that they could be assigned ownership of- Since:
- Coherence 12.1.2
-
analyzeDistribution
long analyzeDistribution()
Analyze the distribution and return the desired time interval before the next distribution analysis. This method may or may not make distribution suggestions through the distribution manager. The strategy can influence (but not guarantee) the frequency with which it is analyzed by returning the desired interval before the next call, or -1 if the strategy has no preference and will rely on the PartitionedService to decide.As a result of failover, partitions may become 'endangered', meaning that the necessary number of backups do not exist. Failure to suggest a distribution recovery plan for those partitions may result in the partition remaining in the endangered state. Additionally, ownership-enabled service members that are in the process of shutting down will wait until all owned partitions are transferred out. Failure to suggest a distribution plan may delay the exit of these leaving members.
The statistics and ownership information exposed by the DistributionManager will not mutate for the duration of this method call.
- Returns:
- the time interval before the next desired analysis, or -1
-
getDescription
String getDescription()
Return a human-readable description of the state of the partition assignment.- Returns:
- a human-readable description
-
-