Diseño de aplicaciones con uso intensivo de datos, 2nd Edición
by Martin Kleppmann, Chris Riccomini
capítulo 6. Replicación
La principal diferencia entre algo que puede salir mal y algo que no puede salir mal es que, cuando algo que no puede salir mal sale mal, suele resultar imposible acceder a ello o repararlo.
Douglas Adams, Mostly Harmless (1992)
La replicación consiste en mantener una copia de los mismos datos en varias máquinas conectadas a través de una red. Como se explica en “Sistemas distribuidos frente a sistemas de un solo nodo”, hay varias razones por las que puede ser conveniente replicar datos, entre ellas:
-
Para mantener los datos geográficamente cerca de tus usuarios (y así reducir la latencia de acceso)
-
Para permitir que el sistema siga funcionando incluso si algunas de sus partes han fallado (y así aumentar la disponibilidad y la durabilidad)
-
Para ampliar el número de máquinas que pueden atender consultas de lectura (y así aumentar el rendimiento de lectura)
En este capítulo daremos por sentado que tu conjunto de datos es lo suficientemente pequeño como para que cada máquina pueda almacenar una copia del conjunto completo. En Capítulo 7 relajaremos esa suposición y hablaremos del fragmentado (particionamiento) de conjuntos de datos que son demasiado grandes para una sola máquina. En capítulos posteriores hablaremos de varios tipos de fallos que pueden producirse en un sistema de datos replicado y de cómo solucionarlos.
Si los datos que estás replicando no cambian con el tiempo, la replicación es fácil; solo tienes que copiar los datos a cada nodo ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access