1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
STABLE
======
Author: Bela Ban
Date: May 29 2007
Goal: to purge messages delivered by all members
Vars
----
- digest: used to reconcile all STABLE messages, re-initialized on STABILITY message (with digest from NAKACK)
- votes: list of members from whom we have received STABLE messages. Reset on STABILITY message
Initialization
--------------
- Set digest from NAKACK
When the timer expires or max_bytes have been received
------------------------------------------------------
- Send STABLE message
Sending of STABLE message
-------------------------
- Get the current digest (from NAKACK) using the GET_DIGEST_STABLE event
- Send the STABLE message to group
On reception of STABLE message from P
-------------------------------------
- If P already present in votes: discard
- Else:
- Update digest
- Add P to votes
- If votes from all members:
- Send STABILITY message
On reception of STABILITY message
---------------------------------
- Pass STABLE event down to NAKACK to purge messages on which every member agreed that they have been delivered
- Set digest from NAKACK
- Clear votes
View change
-----------
- Set digest from NAKACK
- Clear votes
|