Summary: The Spread Toolkit: Architecture and Performance
Yair Amir, Claudiu Danilov, Michal Miskin-Amir, John Schultz, Jonathan Stanton
The Spread toolkit is a group communication system available from www.spread.org. Spread provides a
range of reliability, ordering and stability guarantees for message delivery. Spread supports a rich fault
model that includes process crashes and recoveries and network partitions and merges under the extended
virtual synchrony semantics. The standard virtual synchrony semantics is also supported.
Figure 1.1: The Spread Client-Daemon Architecture
Spread is highly configurable, allowing the user to tailor it to their needs. Spread can be configured to
use a single daemon in the network or to use one daemon in every computer running group communication
applications. Figure 1.1 presents a case where each computer executes one Spread daemon. As can be seen
in the figure, all the physical communication is handled by the daemon. The Spread daemons keep track of
the computers' heavyweight membership. Each daemon keeps track of processes residing on its machine
and participating in group communication. This information is shared between the daemons, creating the
lightweight process group membership. The benefits of this client-daemon architecture are significant:
· The membership algorithm is invoked only if there is a change in the daemons' membership.
Otherwise, when a process joins or leaves a group, the Spread daemon sends a notification message to
the other daemons. When this message is ordered, the daemons deliver a membership notification
containing the new group membership to the members of the group.
· Order is maintained at the daemons' level and not on a group basis. Therefore, for multi-group
systems, message ordering is more efficient in terms of latency and excessive messages. Moreover,