
SWIM is a generic software module that can be used by a distributed peer-to-peer application to maintain weakly-consistent group membership in a scalable manner. This membership system imposes low overhead on participating processes and the underlying network, and detects and disseminates membership updates quickly to participants.
Our effort is motivated by the apparent unscalability of popular heart-beating-based membership protocols. Heart-beating is reputed to suffer from hot-spot problems, or an unscalable response time to detecting simultaneous process failures, or network message loads that grow quadratically with the group size (with a per-process load that grows linearly with the group size) [2].
SWIM -
This is achieved through the use of randomized peer-to-peer protocols for failure detection [2] and epidemic-style dissemination.
Distributed peer-to-peer systems that require membership tracking and failure detection in medium to large-sized process groups (or subgroups) occurring within them can achieve an order of magnitude reduction in membership maintenance overhead by using SWIM as a black box sub-system.
Process groups have unique identifiers. SWIM allows processes to join and leave the group. Process failures are detected using an efficient periodic randomized peer-to-peer probing protocol [2]. Membership changes such as newly joined, failed and left processes are reported to all alive processes in the group. This is achieved by piggybacking membership change information on the random probes, thus achieving an infection-style (also epidemic- or gossip-style) protocol. The system is weakly consistent as the latency of propagation of membership changes to the group varies with the group size, logarithmically on expectation, and linearly in the worst case.
Several research directions - adaptivity, large-area deployment issues, generic use of the Suspicion mechanism. Interested? Email gupta@cs.cornell.edu
Your feedback is important. If you have comments on any of the papers, or want access to the software, please email gupta@cs.cornell.edu
Maintained by: Indranil Gupta gupta@cs.cornell.edu Last revised : 29th July 2002.