THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
Code Block | ||||
---|---|---|---|---|
| ||||
Group stableempty state: unassigned tasks S1[T1, T2], S2[T3, T4], S3[T5] Scaling down the application, S2 will be leaving. #First Rebalance MemberNew member S2S1 joins the group and claim that it is leaving S1 performs task assignments: S1(assigned: [T1, T2, T3, T4, T5], revoked: [], learning: [T3]) S2 // T1~5 not previously owned #Second Rebalance New member S2, S3 joins the group S1 performs task assignments: S1(assigned: [T1, T2, T3, T4, T5], revoked: [], learning: []) S3S2(assigned: [T5], revoked: [], learning: [T3, T4]) Group empty state: unassigned tasks [T1, T2, T3, T4, T5] New member S1 joins the group S1 performs task assignments: S1(S3(assigned: [T1, T2, T3, T4, T5], revoked: [], learning: [T5]) // T1~5 not previously owned New member S2, S3 joins the group S1 performs task assignments: #Third Rebalance S2 and S3 are ready immediately after the assignment. Member S1~S3 join with following status: S1(assigned: [T1, T2], revoked: [T3, T4, T5], revoked: [], learning: []) S2(assigned: [], revoked: [], learning: [T3, T4]) S3(assigned: [], revoked: [], learning: [T5]) S2 and S3 are ready immediately after the assignment. S1 performs task assignments: S1(assigned: [T1, T2], revoked: [T3, T4, T5], learning: []) S2(assigned: [T3, T4], revoked: [], learning: [T3, T4]) S3(assigned: [T5], revoked: [], learning: []) |
Scale Down Running Application
...
Code Block | ||||
---|---|---|---|---|
| ||||
Group stable state: S1[T1, T2], S2[T3, T4], S3[T5] Scaling down the application, S2 will be leaving. #First Rebalance Member S2 joins the group and claim that it is leaving S1 performs task assignments: S1(assigned: [T1, T2], revoked: [], learning: [T3]) S2(assigned: [T3, T4], revoked: [], learning: []) S3(assigned: [T5], revoked: [], learning: [T4]) #Second Rebalance S3 finishes replay first and trigger another rebalance Member S1~S3 join with following status:(S1 is not ready yet) S1(assigned: [T1, T2], revoked: [], learning: [T3]) S2(assigned: [T3], revoked: [T4], learning: []) S3(assigned: [T5], revoked: [], learning: [T4]) S1 performs task assignments: S1(assigned: [T1, T2], revoked: [], learning: [T3]) S2(assigned: [T3], revoked: [T4], learning: []) S3(assigned: [T4, T5], revoked: [], learning: []) #Third Rebalance S1 finishes replay and trigger rebalance. Member S1~S3 join with following status: S1(assigned: [T1, T2], revoked: [], learning: [T3]) S2(assigned: [], revoked: [T3], learning: []) S3(assigned: [T4, T5], revoked: [], learning: []) S1 performs task assignments: S1(assigned: [T1, T2, T3], revoked: [], learning: []) S2(assigned: [], revoked: [T3], learning: []) S3(assigned: [T4, T5], revoked: [], learning: []) S2 will shutdown itself upon new assignment since there is no assigned task left. |
...