Flow Control in Group Communication
The atomicity property of an atomic broadcast protocol is
implemented by each member by storing every update it receives in a local
buffer, until it learns that the update is stable, i.e. the update has
been received by all correct members. The reason for storing an update
in local buffers is that if some member doesn't receive that update due
to communication or process failures, a member that has received it will
retransmit it. In the absence of any specific rules, these local buffers
can grow very large and may overflow, thus causing a member's failure.
This is more likely to happen when a communication or process failure occurs.
In our experience, buffer overflow has been one of the main causes of process
failures in distributed systems. The purpose of flow-control techniques
is to deal with this problem of buffer overflow. Very little attention
has been paid to solve this important problem. Most group communication
services proposed in literature either ignore this problem, or provide
only an ad hoc solution. We present two general-purpose, flow-control techniques,
termed as conservative and optimistic, that can be incorporated in a large
number of atomic multicast services. We present discrete event simulation
results that compare these two flow-control techniques when incorporated
in two different atomic multicast protocols: a positive acknowledgement
protocol and a negative acknowledgement protocol. We investigate three
performance indices: average delivery time, average stability time, and
percentage of time an application multicast request is denied by group
members due to flow control. These performance indices have been measured
by varying four operating parameters: group size, interarrival time between
update arrivals, update arrival pattern, and communication failure frequency.
Our measurements show that an optimistic flow-control technique is almost
always preferable to a conservative one.
Publications
Copyright © 1996 Shivakant Mishra