ScholarGate
Asistente

Particionamiento y Replicación de Datos

El particionamiento de datos divide una base de datos en múltiples nodos para la escalabilidad, mientras que la replicación mantiene copias de los datos en varios nodos para la disponibilidad y el rendimiento de lectura; juntos determinan cómo una base de datos distribuida escala y tolera fallos.

Encontrar tema con PaperMindPróximamenteFind papers & topics
Tools & resources
Descargar diapositivas
Learn & explore
VídeoPróximamente

Definition

El particionamiento (fragmentación o sharding) divide las filas o columnas de una relación entre múltiples nodos para que cada uno contenga una porción de los datos; la replicación almacena copias de los mismos datos en múltiples nodos; las políticas de ubicación y replicación gobiernan conjuntamente la escalabilidad, la disponibilidad y el equilibrio de carga.

Scope

Este tema cubre cómo se colocan los datos en los nodos: particionamiento horizontal (sharding) por rango, hash o lista y particionamiento vertical por columna; estrategias de particionamiento, incluyendo el hashing consistente; y modelos de replicación —sincrónicos versus asincrónicos, primario-respaldo versus multi-primario— junto con las compensaciones de consistencia-disponibilidad que implican. Trata cómo el particionamiento permite el paralelismo y cómo la replicación permite la tolerancia a fallos. Excluye los protocolos de commit y consenso que mantienen las réplicas en acuerdo, que son un tema adyacente.

Core questions

  • ¿Cómo distribuyen las filas entre los nodos el particionamiento por rango, hash y lista?
  • ¿Cuándo es preferible el particionamiento vertical al particionamiento horizontal?
  • ¿Cómo limita el hashing consistente el movimiento de datos cuando se añaden o eliminan nodos?
  • ¿Cuáles son las compensaciones entre la replicación síncrona y asíncrona?
  • ¿Cómo difieren la replicación primario-respaldo y la multi-primario en consistencia y disponibilidad?

Key concepts

  • particionamiento horizontal (sharding)
  • particionamiento vertical
  • particionamiento por rango, hash y lista
  • hashing consistente
  • replicación síncrona versus asíncrona
  • replicación primario-respaldo
  • replicación multi-primario
  • clave de partición y equilibrio de carga

Key theories

Particionamiento horizontal y vertical
El particionamiento horizontal (sharding) distribuye las filas de una tabla entre nodos mediante una clave de partición para repartir la carga y permitir el procesamiento paralelo, mientras que el particionamiento vertical divide una tabla por columnas; la función de particionamiento afecta críticamente el equilibrio de carga y la localidad de las consultas.
Hashing consistente
El hashing consistente mapea claves y nodos en un anillo de modo que añadir o eliminar un nodo mueve solo una pequeña y acotada fracción de claves, lo que lo convierte en una técnica fundamental para el particionamiento en almacenes de datos distribuidos elásticos.
Modelos y compensaciones de replicación
La replicación síncrona mantiene las copias idénticas a costa de la latencia y la disponibilidad bajo particiones, mientras que la replicación asíncrona es más rápida pero puede servir datos obsoletos; la replicación primario-respaldo centraliza las escrituras, mientras que la multi-primario permite escrituras en cualquier lugar a costa de la resolución de conflictos.

Clinical relevance

El particionamiento y la replicación son las palancas que hacen que los sistemas de datos escalen y se mantengan disponibles: el sharding permite que una única base de datos lógica atienda cargas de trabajo que ninguna máquina podría manejar, y la replicación mantiene los servicios funcionando y rápidos a través de fallos y regiones, haciendo que estas técnicas sean centrales para cada plataforma de datos a gran escala.

History

La fragmentación y la replicación se estudiaron en los primeros sistemas de bases de datos distribuidas de finales de los años 70 y 80. El hashing consistente, introducido por Karger y sus colegas en 1997 para el almacenamiento en caché web, fue adoptado posteriormente por los almacenes de clave-valor escalables como esquema de particionamiento, y los grandes servicios de internet popularizaron el sharding y la replicación agresivos para la elasticidad y la disponibilidad.

Key figures

  • M. Tamer Özsu
  • Patrick Valduriez
  • David Karger

Related topics

Seminal works

  • ozsu2011
  • karger1997

Frequently asked questions

¿Cuál es la diferencia entre particionamiento y replicación?
El particionamiento divide los datos para que cada nodo contenga un subconjunto diferente, lo que distribuye el almacenamiento y la carga para la escalabilidad. La replicación mantiene copias de los mismos datos en múltiples nodos para la disponibilidad y lecturas más rápidas. La mayoría de los sistemas grandes hacen ambas cosas: los datos se fragmentan entre nodos y cada fragmento se replica varias veces.
¿Por qué usar hashing consistente en lugar de particionamiento por hash simple?
Con el particionamiento por hash ordinario basado en el módulo, cambiar el número de nodos reasigna casi todas las claves, forzando un movimiento masivo de datos. El hashing consistente organiza las claves y los nodos en un anillo de modo que añadir o eliminar un nodo solo reasigna las claves cercanas a ese nodo, manteniendo el reequilibrio económico a medida que el clúster crece o se reduce.

Methods for this concept

Related concepts