public class MirroringAssignmentStrategy extends SimpleAssignmentStrategy
SimpleAssignmentStrategy.AnalysisContext, SimpleAssignmentStrategy.BackupStrength, SimpleAssignmentStrategy.JMXPartitionStats, SimpleAssignmentStrategy.LoadCalculator, SimpleAssignmentStrategy.SimpleLoadCalculator
Modifier and Type | Field and Description |
---|---|
protected PartitionedService |
m_service
The associated service that this strategy attempts to co-locate partitions with.
|
protected String |
m_sService
The name of the associated service.
|
m_ctxLast, m_fRefresh, m_manager, m_mapSuggestLast, m_setOwnersLast, m_statsPartition, MEMBERID_COMPARATOR, MSG_NO_PENDING, MSG_NO_RESULT
NOTIFY_LOST
Constructor and Description |
---|
MirroringAssignmentStrategy(String sService)
Construct a MirroringAssignmentStrategy to be associated the specified service.
|
Modifier and Type | Method and Description |
---|---|
protected long |
analyzeDistribution(SimpleAssignmentStrategy.AnalysisContext ctx)
Analyze the distribution and suggest the resulting distribution to distribution manager.
|
protected PartitionedService |
bindService(String sService)
Bind this assignment strategy to the specified partitioned service, and return the bound service.
|
PartitionedService |
getAssociatedService()
Return the associated service.
|
String |
getDescription()
Return a human-readable description of the state of the partition assignment.
|
PartitionedService |
getService()
Return the partitioned service for which this assignment strategy controls the distribution.
|
void |
init(DistributionManager manager)
Initialize the PartitionAssignmentStrategy and bind it to the specified DistributionManager.
|
protected boolean |
isRefinementNeeded(SimpleAssignmentStrategy.AnalysisContext ctx, PartitionedService serviceThis, PartitionedService serviceThat)
Return true iff the partition assignments sync'd from the specified associated service should be further refined/balanced by the local assignment strategy.
|
protected void |
setAssociatedService(PartitionedService service)
Set the associated service.
|
protected void |
syncAssignments(SimpleAssignmentStrategy.AnalysisContext ctx, PartitionedService serviceThat)
Update the analysis context to reflect the partition assignments of the specified associated service.
|
protected boolean |
validateAssociatedService(PartitionedService service)
Validate that the distribution for the specified service is compatible with this service.
|
analyze, analyzeDistribution, analyzeOrphans, chainComparators, chainComparators, checkBackupBalance, checkBackupStrong, checkEndangered, checkLeaving, checkPrimaryBalance, checkSimpleDistribution, collectScheduledDistributions, doBalancePrimary, emitLossNotification, filterArray, filterArray, filterSort, filterSort, getAveragePartitionSizeKB, getAverageStorageSizeKB, getBackupCount, getCoordinatorId, getFairShareBackup, getFairSharePrimary, getHAStatus, getHATarget, getLastAnalysisContext, getLastAnalysisTime, getLastOwnershipMembers, getManager, getMaxLoadNodeId, getMaxPartitionSizeKB, getMaxStorageSizeKB, getMember, getMemberJoinDelay, getPartitionCount, getRemainingDistributionCount, getServiceMachineCount, getServiceNodeCount, getServiceRackCount, getServiceSiteCount, getStrategyName, getSuggestionCompletionDelay, getUnownedPartitions, getVariance, instantiateAnalysisContext, instantiateLoadCalculator, makeMBeanName, primeDistribution, registerMBean, reportScheduledDistributions, setLastAnalysisContext, setLastOwnershipMembers, splitByOwner, toString, unregisterMBean, updateCompositeStats, validateBackups
protected PartitionedService m_service
protected String m_sService
public MirroringAssignmentStrategy(String sService)
sService
- the name of the associated servicepublic PartitionedService getService()
protected void setAssociatedService(PartitionedService service)
service
- the associated servicepublic PartitionedService getAssociatedService()
protected boolean validateAssociatedService(PartitionedService service)
service
- the service to validateprotected void syncAssignments(SimpleAssignmentStrategy.AnalysisContext ctx, PartitionedService serviceThat)
ctx
- the analysis contextserviceThat
- the associated service whose partition assignments to syncprotected PartitionedService bindService(String sService)
sService
- the name of the service to bindprotected boolean isRefinementNeeded(SimpleAssignmentStrategy.AnalysisContext ctx, PartitionedService serviceThis, PartitionedService serviceThat)
ctx
- the analysis contextserviceThis
- the local serviceserviceThat
- the associated service (may be null if unbound)public void init(DistributionManager manager)
analysis
.init
in interface PartitionAssignmentStrategy
init
in class SimpleAssignmentStrategy
manager
- the DistributionManager that this strategy is bound topublic String getDescription()
getDescription
in interface PartitionAssignmentStrategy
getDescription
in class SimpleAssignmentStrategy
protected long analyzeDistribution(SimpleAssignmentStrategy.AnalysisContext ctx)
analyzeDistribution
in class SimpleAssignmentStrategy
ctx
- the analysis context