Swim Paper Das Gupta Motivala 2002
Paper canónico que define SWIM. Ingesta motivada por citation chasing de ../concepts/swim-membership-protocol — valida los defaults de Camunda contra los parámetros y garantías formales del paper original. Aporta foundation theory (Chandra-Toueg, FLP) que el protocolo asume.
Resumen¶
Das, Gupta y Motivala (Cornell, 2002) presentaron SWIM como respuesta a la unscalability del all-to-all heartbeating: la decisión clave es separar failure detection de membership dissemination. El paper documenta:
- El failure detector básico: ping random + indirect ping a
kpeers víaping-req. Da Strong Completeness con detection timee/(e-1) · T'en expectation, independiente del tamaño del grupo. - Infection-style dissemination: en vez de multicast, piggyback updates en los pings/acks. Coverage
N - N^(-(2λ-2))después deλ · log(N)rounds (Bailey 1975 epidemic model). - Suspicion mechanism: Suspect → Alive → Confirm con incarnation numbers (idénticos en idea a las destination sequence numbers de AODV). Reduce false positives de 4 a 12 miembros estables bajo 10% packet loss.
- Round-robin probe target selection: garantiza Time Bounded Completeness con worst case
2N · T'. Sin esto, el detection time worst-case es ilimitado (random selection puede saltarse un nodo failed indefinidamente).
Páginas wiki derivadas¶
- ../concepts/failure-detector-formal-properties — Strong Completeness, Speed, Accuracy, Network Load (Chandra-Toueg) + FLP impossibility.
- ../concepts/infection-style-dissemination — Bailey epidemic model aplicado a membership; piggybacking sobre packets del failure detector.
- ../concepts/incarnation-numbers — Suspect/Alive/Confirm con preference rules; analogía con AODV destination sequence numbers.
- ../analysis/swim-paper-vs-camunda-defaults — comparación directa: parámetros del paper vs defaults de Camunda. Valida elecciones y flagea brechas (round-robin no documentado en config Camunda).
Plus update a la página existente ../concepts/swim-membership-protocol para enlazar las nuevas.
Gaps abiertos por este source¶
- ¿Camunda usa round-robin probe target selection o random? La config no lo expone; requiere inspección del source de
scalecube-clusteroatomix/cluster. Ver ../analysis/swim-paper-vs-camunda-defaults (sección "Gaps"). - ¿Qué buffer size usa Camunda para piggyback (paper sugiere
λ · log(N)conλconstante pequeño)? No expuesto en config defaults. - ¿Cómo se implementa el "rejuvenation" después de Suspect→Alive? Camunda lo soporta vía
notifySuspectflag, pero el flujo exacto no está documentado en los sources actuales.
Limitaciones del paper¶
- Experimentos sobre 100 Mbps Ethernet single-cluster — no valida el comportamiento WAN que SWIM prometería extender.
- Tamaño máximo testeado: 55 nodos. Comportamiento a escalas de Cassandra/Consul (1000+) viene de papers/práctica posterior, no de este.
- No discute geo-replication, particiones físicas, o BFT.