Class ElectionStrategy
java.lang.Object
org.tasktide.mutex.strategy.MutexStrategy
org.tasktide.mutex.strategy.ElectionStrategy
Splits NFS
1). Initialization.
2). Wait for leadership.
3). Examine iteration:
- Current position.
- Queue stagnation.
- Leader time-to-live.
4). Release lock.
ElectionStrategy orientated locking
into phases:1). Initialization.
2). Wait for leadership.
3). Examine iteration:
- Current position.
- Queue stagnation.
- Leader time-to-live.
4). Release lock.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanApplyMutexbooleanRemove election filesevaluateIteration(ElectionState state, Mutex mutex, int limit) Evaluate iterationbooleanevaluateLeaderTtl(Path leader) Evaluate provided leader TTLexamineQueueStagnation(ElectionState state, Mutex mutex, int limit) Examines current position in queue has changed.voidInitializeMutexbooleanRelease providedMutexvoidwaitUntilLeader(Mutex mutex) Wait until leadership is acquiredMethods inherited from class MutexStrategy
getStrategyType, inferLeader, inferPosition, queueSize
-
Constructor Details
-
ElectionStrategy
public ElectionStrategy()ConstructElectionStrategy
-
-
Method Details
-
apply
ApplyMutex- Specified by:
applyin classMutexStrategy- Parameters:
mutex-- Returns:
- boolean
-
cleanUp
Remove election files- Specified by:
cleanUpin classMutexStrategy- Parameters:
mutex-- Returns:
- boolean
-
release
Release providedMutex- Specified by:
releasein classMutexStrategy- Parameters:
mutex-- Returns:
- boolean
-
initMutex
-
examineQueueStagnation
Examines current position in queue has changed.
1). PositionCheckValues.PROGRESSED = No action
2). PositionCheckValues.UNCHANGED = Increment streak
3). PositionCheckValues.LIMIT_REACHED = Recast ballot- Parameters:
state-mutex-limit-- Returns:
PositionCheckValues
-
evaluateLeaderTtl
Evaluate provided leader TTL- Parameters:
leader-- Returns:
- boolean
-
evaluateIteration
Evaluate iteration- Parameters:
state-mutex-limit-- Returns:
LoopDecision
-
waitUntilLeader
-