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