Most Group communication services are event driven and multiple events can occur concurrently during execution at a group member. Two common techniques have been used to handle concurrent events: thread based and event based. A thread-based implementation allows multiple concurrent threads of execution in a program, while an event-based implementation uses a single thread of control. In this paper, we evaluate these two techniques in the context of implementing a group communication service. This evaluation is based on a comparison of the performance measured from two different implementations ---one event-based and the other thread-based--- of a group communication service, and our experience in using these techniques to implement group communication services in the past. Our conclusion is that an event-based implementation is almost always preferable to a thread-based implementation of a group communication service. An event-based implementation results in better performance, and simpler, more manageable, and portable code.


Copyright © 1998 Shivakant Mishra