Bases de Datos Distribuidas y Paralelas
Las bases de datos distribuidas y paralelas distribuyen los datos y el procesamiento de consultas entre múltiples máquinas para lograr escalabilidad, disponibilidad y alto rendimiento, manteniendo al mismo tiempo una vista coherente de los datos.
Definition
Una base de datos distribuida almacena datos en múltiples sitios en red que aparecen a los usuarios como una única base de datos, y una base de datos paralela utiliza múltiples procesadores y discos (típicamente sin compartición) para ejecutar operaciones de base de datos concurrentemente para un mayor rendimiento y menor latencia.
Scope
Esta área abarca la gestión de datos en múltiples nodos: cómo se particionan (fragmentan) y replican los datos; cómo se procesan las consultas en paralelo a través de particiones y sitios distribuidos; y cómo las transacciones se confirman atómicamente y las réplicas se mantienen consistentes mediante protocolos de confirmación y consenso. Trata la distinción arquitectónica entre bases de datos paralelas sin compartición (shared-nothing) y bases de datos geográficamente distribuidas. Es el complemento específico de las bases de datos a los temas generales de computación distribuida, que cita pero no duplica; excluye el consenso de propósito general y la teoría de sistemas distribuidos más allá de su uso en bases de datos.
Sub-topics
Core questions
- ¿Cómo se particionan y replican los datos entre los nodos, y por qué?
- ¿Cómo se ejecutan las consultas en paralelo a través de particiones y sitios?
- ¿Cómo se confirma una transacción atómicamente cuando abarca múltiples nodos?
- ¿Cómo se mantienen consistentes las réplicas en presencia de fallos?
- ¿En qué se diferencian los diseños paralelos (sin compartición) y geográficamente distribuidos?
Key concepts
- fragmentación horizontal y vertical
- replicación
- arquitectura sin compartición (shared-nothing)
- paralelismo particionado y en pipeline
- procesamiento de consultas distribuidas
- confirmación en dos fases (two-phase commit)
- consenso y consistencia de réplicas
- aceleración (speedup) y escalabilidad (scaleup)
Key theories
- Particionamiento y replicación de datos
- Las tablas se fragmentan horizontal o verticalmente y se distribuyen entre los nodos para la escalabilidad, y las copias se replican para la disponibilidad y el rendimiento de lectura; la estrategia de ubicación determina el equilibrio de carga y la tolerancia a fallos.
- Procesamiento de consultas paralelas
- Las bases de datos paralelas sin compartición logran una aceleración y escalabilidad casi lineales al particionar los datos y ejecutar operadores como escaneos y uniones en paralelo a través de los nodos, explotando el paralelismo particionado y en pipeline.
- Confirmación distribuida y consistencia de réplicas
- Los protocolos de confirmación atómica, como la confirmación en dos fases, aseguran resultados de todo o nada en todos los sitios, y los protocolos de consenso y replicación mantienen las réplicas consistentes a pesar de los fallos de nodos y de red.
Clinical relevance
Las bases de datos distribuidas y paralelas son las que permiten que los sistemas de datos escalen a las cargas de trabajo de internet: los almacenes de datos paralelos ejecutan análisis sobre petabytes, las bases de datos geográficamente distribuidas mantienen los servicios globales disponibles y con baja latencia, y las técnicas de partición, replicación y confirmación que se describen aquí sustentan casi todas las plataformas de datos a gran escala.
History
La investigación en bases de datos distribuidas comenzó a finales de la década de 1970 con sistemas como SDD-1 e Ingres distribuido. En la década de 1980 surgieron las bases de datos paralelas sin compartición (Gamma, Teradata) que DeWitt y Gray argumentaron en 1992 que eran el futuro de la gestión de datos de alto rendimiento. Las demandas a escala de internet impulsaron posteriormente los sistemas particionados y replicados que definen las plataformas de datos en la nube modernas.
Key figures
- M. Tamer Özsu
- Patrick Valduriez
- David DeWitt
- Jim Gray
Related topics
Seminal works
- ozsu2011
- dewitt1992
- silberschatz2019
Frequently asked questions
- ¿Cuál es la diferencia entre una base de datos distribuida y una base de datos paralela?
- Una base de datos paralela utiliza muchos procesadores y discos fuertemente acoplados, generalmente en una sola ubicación con una interconexión rápida (a menudo un clúster sin compartición), para ejecutar consultas más rápidamente. Una base de datos distribuida distribuye los datos entre sitios separados, a menudo geográficamente dispersos, para la disponibilidad y la localidad. La línea se difumina, pero las bases de datos paralelas enfatizan el rendimiento y las bases de datos distribuidas enfatizan la distribución y la autonomía.
- ¿Por qué la arquitectura sin compartición es la arquitectura paralela dominante?
- En un diseño sin compartición, cada nodo tiene su propia CPU, memoria y disco, por lo que no hay un recurso central que se convierta en un cuello de botella a medida que se añaden nodos. Esto permite que el sistema logre una aceleración y escalabilidad casi lineales, razón por la cual se convirtió en la arquitectura estándar para bases de datos paralelas y analíticas escalables.