=clu #18554 Make oldest assignment deterministic when joining
* the reported issue is fixed by the immediate leaderActions (moving to Up) when joining the first node to itself * the other changes are precautions just in case
This commit is contained in:
parent
1bacae3cac
commit
9380983d3c
9 changed files with 116 additions and 99 deletions
|
|
@ -226,7 +226,7 @@ object ClusterSingletonManager {
|
|||
|
||||
val cluster = Cluster(context.system)
|
||||
// sort by age, oldest first
|
||||
val ageOrdering = Ordering.fromLessThan[Member] { (a, b) ⇒ a.isOlderThan(b) }
|
||||
val ageOrdering = Member.ageOrdering
|
||||
var membersByAge: immutable.SortedSet[Member] = immutable.SortedSet.empty(ageOrdering)
|
||||
|
||||
var changes = Vector.empty[AnyRef]
|
||||
|
|
@ -260,7 +260,10 @@ object ClusterSingletonManager {
|
|||
|
||||
def add(m: Member): Unit = {
|
||||
if (matchingRole(m))
|
||||
trackChange { () ⇒ membersByAge += m }
|
||||
trackChange { () ⇒
|
||||
membersByAge -= m // replace
|
||||
membersByAge += m
|
||||
}
|
||||
}
|
||||
|
||||
def remove(m: Member): Unit = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue