💻

Simulador de Base de Datos Distribuida

Visualice la replicación de nodos, las compensaciones del teorema CAP y la propagación de consistencia

💻 Pruébalo ahora

¿Qué es una base de datos distribuida?

Una base de datos distribuida distribuye los datos en múltiples servidores (nodos) en diferentes ubicaciones. El teorema CAP dice que solo puede garantizar dos de tres propiedades: consistencia (cada lectura ve la última escritura), disponibilidad (cada solicitud obtiene una respuesta) y tolerancia a particiones (el sistema funciona a pesar de las divisiones de red).

¿Por qué es importante? Cada servicio importante de Internet, desde Google hasta Netflix, depende de bases de datos distribuidas. Comprender las compensaciones entre consistencia y disponibilidad es esencial para construir sistemas confiables y escalables que sirvan a miles de millones de usuarios.

📖 Profundización

Analogía 1

Imagine un sistema de bibliotecas con sucursales en 5 ciudades, todas compartiendo el mismo catálogo. Cuando alguien saca un libro en préstamo en la sucursal A, todas las demás sucursales deben actualizar sus registros. Si la línea telefónica de la sucursal C se cae (una partición de red), es posible que la sucursal C aún muestre el libro como disponible; eso es un problema de coherencia. Puede bloquear todos los préstamos hasta que la sucursal C se vuelva a conectar (eligiendo coherencia) o dejar que cada sucursal siga prestando de forma independiente y conciliándolos más tarde (eligiendo disponibilidad).

Analogía 2

Piense en un chat grupal con amigos de diferentes países. Cuando envías un mensaje, todos deberían verlo en el mismo orden. Pero si alguien tiene una caída en Internet, pierde mensajes y puede responder a información desactualizada, creando hilos de conversación conflictivos. Las bases de datos distribuidas enfrentan exactamente este problema a escala masiva y utilizan técnicas como relojes vectoriales y CRDT para resolver el caos cuando todos se vuelven a conectar.

🎯 Consejos del simulador

Principiante

Comience con 5 nodos y factor de replicación 3; esto significa que cada dato se almacena en 3 de los 5 nodos.

Intermedio

Compare la coherencia de escritura TODOS frente a UNO: TODO es más lento pero garantiza que cada réplica tenga los datos más recientes

Experto

Deshabilite los relojes vectoriales y active escrituras simultáneas durante una partición para observar conflictos no resueltos

📚 Glosario

CAP Theorem
El teorema de Brewer establece que un sistema distribuido puede proporcionar como máximo dos de tres garantías: coherencia, disponibilidad y tolerancia de partición. Durante una partición de red, debes elegir entre C y A.
Replication Factor
El número de copias de cada dato mantenido en todo el clúster. Un factor de replicación de 3 significa que cada escritura se almacena en 3 nodos diferentes.
Quorum
La mayoría de las réplicas deben reconocer una lectura o escritura para que la operación se realice correctamente. Para RF=3, el quórum es 2. Las lecturas de quórum combinadas con las escrituras de quórum garantizan la coherencia.
Consistency Level
Determina cuántas réplicas deben responder antes de que una lectura o escritura se considere exitosa. ONE es más rápido pero puede devolver datos obsoletos; TODO es el más lento pero siempre consistente.
Network Partition
Una falla en la comunicación de la red que divide el clúster en dos o más grupos de nodos que no pueden comunicarse entre sí, lo que obliga a elegir entre coherencia y disponibilidad.
Split-Brain
Una condición peligrosa en la que una partición de red hace que dos grupos de nodos acepten de forma independiente escrituras conflictivas, creyéndose que son el clúster autorizado.
Vector Clock
Una estructura de datos que rastrea el orden causal de eventos en nodos distribuidos. Cada nodo mantiene un contador lógico y la comparación de relojes vectoriales revela si los eventos están relacionados causalmente o son concurrentes.
CRDT
Tipo de datos replicados sin conflictos: una estructura de datos diseñada para que las actualizaciones simultáneas en diferentes réplicas siempre converjan al mismo estado sin coordinación, utilizando propiedades matemáticas como la conmutatividad.
Last-Write-Wins (LWW)
Una estrategia simple de resolución de conflictos donde gana la escritura con la última marca de tiempo. Fácil de implementar pero puede descartar silenciosamente actualizaciones simultáneas.
Gossip Protocol
Un patrón de comunicación entre pares en el que cada nodo intercambia periódicamente información de estado con un par aleatorio y, finalmente, propaga actualizaciones a todos los nodos, inspirado en cómo se difunden los rumores.
Anti-Entropy
Un proceso de reparación en segundo plano en el que los nodos comparan periódicamente sus datos con sus pares y sincronizan las diferencias, lo que garantiza la coherencia final incluso después de fallas.
Merkle Tree
Una estructura de datos de árbol hash que se utiliza para detectar de manera eficiente diferencias entre datos de réplica. Los nodos comparan primero los hashes de raíz y luego profundizan para encontrar y reparar solo las claves específicas que difieren.
Tombstone
Un marcador que indica que los datos han sido eliminados. Los Tombstones deben conservarse durante un período TTL para evitar que los datos eliminados vuelvan a aparecer cuando un nodo particionado con los datos antiguos se vuelva a unir al clúster.
Eventual Consistency
Un modelo de coherencia que garantiza que si no se realizan nuevas actualizaciones, todas las réplicas eventualmente convergerán al mismo valor. El retraso de propagación es el tiempo hasta la convergencia.
Write-Ahead Log (WAL)
Una técnica de durabilidad en la que los cambios se escriben en un registro secuencial antes de aplicarse a la base de datos, lo que permite la recuperación tras fallos al reproducir el registro.

🏆 Figuras clave

Eric Brewer (2000)

Formuló el teorema CAP en UC Berkeley, dando forma fundamentalmente al diseño de bases de datos distribuidas al demostrar la imposibilidad de garantizar simultáneamente coherencia, disponibilidad y tolerancia a las particiones.

Leslie Lamport (1998)

Creó el algoritmo de consenso Paxos y fue pionero en la teoría de sistemas distribuidos con conceptos como relojes lógicos, marcas de tiempo Lamport y el problema de los generales bizantinos.

Diego Ongaro (2014)

Diseñó el algoritmo de consenso Raft en Stanford, haciendo que el consenso distribuido sea comprensible y práctico para sistemas del mundo real como etcd y CockroachDB.

Werner Vogels (2007)

Lideró el diseño de Dynamo de Amazon, que introdujo hash consistente, relojes vectoriales y quórums descuidados, inspirando a Cassandra, Riak y todo el movimiento NoSQL.

Jeff Dean & Wilson Hsieh (2012)

Co-diseño de Google Spanner, la primera base de datos distribuida globalmente con transacciones externamente consistentes utilizando TrueTime API y sincronización GPS/reloj atómico.

Marc Shapiro (2011)

Fue pionero en tipos de datos replicados libres de conflictos (CRDT) en INRIA, proporcionando bases matemáticas para una coherencia final sin coordinación.

🎓 Recursos de aprendizaje

💬 Mensaje a los estudiantes

Las bases de datos distribuidas son la columna vertebral de la Internet moderna. Cada vez que publicas en las redes sociales, transmites un vídeo o realizas una compra en línea, docenas de nodos de bases de datos distribuidas se coordinan entre bastidores. El teorema CAP nos enseña que la perfección es imposible en un mundo donde las redes fallan, y que la ingeniería consiste en hacer concesiones inteligentes. Los conceptos que explora aquí (replicación, consenso, resolución de conflictos) son los mismos desafíos que los ingenieros de Google, Amazon y Netflix resuelven todos los días. Comprender estos fundamentos le brindará una profunda apreciación de cómo funciona realmente el mundo digital y tal vez lo inspire a construir la próxima generación de sistemas de datos resilientes.

Comenzar

Gratis, sin registro

Comenzar →