Class NullImplementation.NullPartitionAssignmentStrategy
- All Implemented Interfaces:
PartitionAssignmentStrategy
- Enclosing class:
NullImplementation
PartitionAssignmentStrategy
that does nothing.-
Field Summary
Modifier and TypeFieldDescriptionstatic final NullImplementation.NullPartitionAssignmentStrategy
Singleton instance. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionlong
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.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.
-
Field Details
-
INSTANCE
Singleton instance.
-
-
Constructor Details
-
NullPartitionAssignmentStrategy
public NullPartitionAssignmentStrategy()
-
-
Method Details
-
init
Initialize the PartitionAssignmentStrategy and bind it to the specified DistributionManager. This method is called only on the distribution coordinator, prior its first distributionanalysis
.- Specified by:
init
in interfacePartitionAssignmentStrategy
- Parameters:
manager
- the DistributionManager that this strategy is bound to
-
analyzeOrphans
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.
- Specified by:
analyzeOrphans
in interfacePartitionAssignmentStrategy
- Parameters:
mapConstraints
- the map of assignment constraints associating members with the set of partitions that they could be assigned ownership of
-
analyzeDistribution
public 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.
- Specified by:
analyzeDistribution
in interfacePartitionAssignmentStrategy
- Returns:
- the time interval before the next desired analysis, or -1
-
getDescription
Return a human-readable description of the state of the partition assignment.- Specified by:
getDescription
in interfacePartitionAssignmentStrategy
- Returns:
- a human-readable description
-