SWIM Protocol

Last updated
SWIM "Outsourced Heartbeats" SwimOutsourced.png
SWIM "Outsourced Heartbeats"

The Scalable Weakly Consistent Infection-style Process Group Membership (SWIM) Protocol is a group membership protocol based on "outsourced heartbeats" [1] used in distributed systems, first introduced by Abhinandan Das, Indranil Gupta and Ashish Motivala in 2002. [2] [3] It is a hybrid algorithm which combines failure detection with group membership dissemination.

Contents

Protocol

The protocol has two components, the Failure Detector Component and the Dissemination Component.

The Failure Detector Component functions as follows:

  1. Every T' time units, each node () sends a ping to random other node () in its membership list.
  2. If receives a response from , is decided to be healthy and updates its "last heard from" timestamp for to be the current time.
  3. If does not receive a response, contacts k other nodes on its list (), and requests that they ping .
  4. If after T' units of time: if no successful response is received, marks as failed.

The Dissemination Component functions as follows:

Properties

The protocol provides the following guarantees:

Extensions

The original SWIM paper lists the following extensions to make the protocol more robust: [2]

See also

References

  1. Petrov, Alex (2019). Database Internals. O'Reilly Media.
  2. 1 2 Gupta, Indranil; Chandra, Tushar D.; Goldszmidt, Germán S. (August 1, 2001). "On scalable and efficient distributed failure detectors". Proceedings of the twentieth annual ACM symposium on Principles of distributed computing. PODC '01. Newport, Rhode Island, US: Association for Computing Machinery. pp. 170–179. doi:10.1145/383962.384010. ISBN   978-1-58113-383-7. S2CID   216594.
  3. 1 2 Das, A.; Gupta, I.; Motivala, A. (June 23, 2002). "SWIM: Scalable weakly-consistent infection-style process group membership protocol". Proceedings International Conference on Dependable Systems and Networks. pp. 303–312. doi:10.1109/DSN.2002.1028914. ISBN   0-7695-1597-5. S2CID   11094028.