Topología Masterless Peer-to-Peer: Anillo de Hashing Consistente (Murmur3), VNodes y Protocolo Gossip (50 min)
Topología Masterless Peer-to-Peer: Anillo de Hashing Consistente (Murmur3), VNodes y Protocolo Gossip
1. Cero Punto Único de Fallo (Zero SPOF) en Cassandra y ScyllaDB
A diferencia de las arquitecturas Primario-Secundario (PostgreSQL, MongoDB, Redis) que sufren una ventana de indisponibilidad de segundos durante una elección de líder, Apache Cassandra y ScyllaDB son 100% simétricos (Masterless):
- El espacio de tokens de 64 bits ($[-2^{63}, 2^{63}-1]$ calculado con Murmur3Partitioner sobre la Partition Key) forma un anillo continuo dividido en Virtual Nodes (VNodes).
- Cualquier nodo puede actuar como Coordinador de una petición, aunque los drivers modernos (Token-Aware Driver) calculan el hash Murmur3 en el cliente y envían la petición directamente a una de las $N$ réplicas propietarias del token.
flowchart LR
CLIENT["Token-Aware Driver (Calcula Murmur3(PK) = Token 48291)"] --> N1["Réplica 1 (Rack A - Propietaria Primaria)"]
N1 -->|"Replicación Asíncrona / Quórum"| N2["Réplica 2 (Rack B)"]
N1 -->|"Replicación Asíncrona / Quórum"| N3["Réplica 3 (Rack C)"]
2. Por Qué ScyllaDB (C++ Seastar Shard-per-Core) Elimina las Pausas de GC de Cassandra (JVM)
ScyllaDB reimplementa la arquitectura de Cassandra en C++ sobre el framework asíncrono Seastar bajo un modelo Shared-Nothing Shard-per-Core: cada núcleo físico de CPU posee su propia porción de RAM, su propia cola NIC de red y su propio planificador de I/O directo (O_DIRECT evitando el OS Page Cache), reduciendo la latencia p99 de $15\text{ ms}$ a $< 1.5\text{ ms}$ sin pausas de Garbage Collection.