next up previous contents
Next: Interaction between protocol layers Up: Protocol layers that work Previous: NAKACK

STABLE

An ACK-based scheme can always determine when all members have received a certain message: it is safe to deleted a message when acks from all members have been received. This contrasts with a NAK-based scheme (the default used in the NAKACK layer). Here, the NAKACK layer cannot determine when a message has been received by all members due to a lack of acks. The problem is that messages accumulate until the new view change (when they can safely be deleted). Unfortunately, we cannot know when exactly view changes occur, as this is application dependent. As there may be many messages accumulating between view changes, we have to garbage collect them in order to reduce memory consumption.

The STABLE layer gossips with other STABLE layers in different stacks (of the same group) to determine stable messages, .i.e. message that are know to have been received by all members. It uses the scheme presented in [GHvR +97] to do so. It periodically (or after n messages) sends out a gossip message to a subset of the group, including its stable messages: this is called a gossip round. Each gossip round maintains a vector of members that have already seen this specific gossip message. When all members have seen a round, a STABLE event is generated and sent up the stack. Other layers (such as the NAKACK layer) may use this event to remove stable messages from their caches.


next up previous contents
Next: Interaction between protocol layers Up: Protocol layers that work Previous: NAKACK

1999-12-13