Diseño de aplicaciones con uso intensivo de datos, 2nd Edición
by Martin Kleppmann, Chris Riccomini
capítulo 7. Fragmentación
Es evidente que debemos romper con lo secuencial y no limitar las computadoras. Debemos establecer definiciones y proporcionar prioridades y descripciones de los datos. Debemos establecer relaciones, no procedimientos.
Grace Murray Hopper, Management and the Computer of the Future (1962)
Una base de datos distribuida suele distribuir los datos entre los nodos de dos maneras:
-
Almacena una copia de los mismos datos en varios nodos. Esto es la replicación, que ya hemos visto en Capítulo 6.
-
Si hay tantos datos o un rendimiento de escritura tan alto que un solo nodo no puede manejarlo, divide los datos en fragmentos (shards) o particiones más pequeños y almacena diferentes fragmentos en diferentes nodos. Hablaremos del fragmentado en este capítulo.
Normalmente, los fragmentos se definen de tal manera que cada dato (cada registro, fila o documento) pertenece exactamente a un fragmento. Hay varias formas de lograrlo, que analizaremos en profundidad en este capítulo. En efecto, cada fragmento es una pequeña base de datos en sí misma, aunque algunos sistemas de bases de datos admiten operaciones que afectan a varios fragmentos al mismo tiempo.
El fragmentado suele combinarse con la replicación, de modo que las copias de cada fragmento se almacenan en varios nodos. Esto significa que, aunque cada registro pertenezca exactamente a un fragmento, puede almacenarse en varios nodos diferentes para garantizar la tolerancia a fallos.
Un nodo puede almacenar ...
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