gestión de datos - aidan hoganaidanhogan.com/teaching/gdd-2017/07/gdd2017-07.pdflas bases de datos...
TRANSCRIPT
![Page 2: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/2.jpg)
Hadoop/MapReduce/Pig/Spark:
Procesando datos masivos
![Page 3: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/3.jpg)
Recuperación de información:
Almacenando datos masivos no estructurados
![Page 4: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/4.jpg)
¿Almacenando datos masivos estructurados?
?
![Page 5: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/5.jpg)
DATOS MASIVOS:
ALMACENAR DATOS ESTRUCTURADOS
![Page 6: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/6.jpg)
Bases de datos relacionales
![Page 7: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/7.jpg)
Bases de datos relacionales: ¿Talle único?
![Page 8: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/8.jpg)
![Page 9: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/9.jpg)
Bases de datos relacionales: Aspectos costosos
• "Structured Query Language" (SQL):
– Lenguaje declarativo
– Muchas buenas características
– Difícil de optimizar
• "Atomicity, Consistency, Isolation, Durability" (ACID):
– Asegura correctitud de la base de datos
• ¡Incluso si hay mucho trafico!
– ¡Las transacciones incurren en altos gastos!
• bloqueos multi-fase, multi-versionamiento, logging
• La distribución no es directa
![Page 10: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/10.jpg)
Gastos en transacciones: el costo de ACID
• 640 transacciones por segundo en un sistema que garantiza ACID
• 12.700 transacciones por segundo en un sistema sin logging, transacciones o bloqueos
![Page 11: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/11.jpg)
Bases de datos relaciones: Complejidad
![Page 12: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/12.jpg)
¿ALTERNATIVAS A BASES DE DATOS RELACIONALES
PARA GESTIONAR DATOS MASIVOS?
![Page 13: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/13.jpg)
NoSQL ¿Qué saben ustedes de NoSQL?
![Page 14: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/14.jpg)
Panorama de las bases de datos
Uso del modelo relaciones
Las bases de datos relacionales que se
enfoquen en la escalabilidad para
competir contra NoSQLa la vez que mantienen
ACID
Análisis de datos en lotesNo uso del modelo relacional
Tiempo real
Almacena documentos
(valores semi-estructurados)
No sólo SQL
Mapas
Orientados a columnas
Datos estructurados como grafos
En memoria
Almacenamiento en la nube
![Page 15: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/15.jpg)
http://db-engines.com/en/ranking
![Page 16: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/16.jpg)
NoSQL
![Page 17: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/17.jpg)
NoSQL: No sólo SQL ("Not only SQL")
• Distribuido– "Sharding": partición "horizontal" de datos
– Replicación
– Garantías diferentes a ACID
• A menudo lenguajes más simples que SQL– APIs no estandarizadas
– Más trabajo para la aplicación
• Sabores diferentes (para escenarios diferentes)– Garantías diferentes
– Perfiles diferentes de escalabilidad
– Funcionalidades de consulta diferentes
– Modelos de datos diferentes
![Page 18: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/18.jpg)
LIMITACIONES DE ALMACENAMIENTO
DISTRIBUIDO: TEOREMA CAP
![Page 19: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/19.jpg)
Pero primero … ACID
Para bases de datos tradicionales sin distribución …
1. Atomicity:
– Atomicidad: Las transacciones son todo o nada
2. Consistency:
– Coherencia: No rompe las restricciones / reglas
3. Isolation:
– Aislamiento: Transacciones paralelas actúan como si fueran secuenciales
4. Durability
– Durabilidad: El sistema recuerda los cambios
![Page 20: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/20.jpg)
¿Qué es CAP?
Tres garantías que un sistema distribuido podría ofrecer
1. Consistency:
– Coherencia: Todos los nodos tienen una visión coherente del sistema
2. Availability:
– Disponibilidad: Toda petición de escritura/lectura es atendida
3. Partition-tolerance:
– Tolerancia a particiones: El sistema funciona incluso si hay pérdida de mensajes
¡El CA en CAP no es el mismo CA que en ACID!
¡Partición de la red, no de los datos!
![Page 21: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/21.jpg)
Un sistema distribuido (con Replicación)
–
– –
–
![Page 22: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/22.jpg)
Coherencia
–
– –
–
Hay 891 usuarios en
‘M’
Hay 891 usuarios en
‘M’
![Page 23: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/23.jpg)
Disponibilidad ("Availability")
–
– –
–
¿Cuántos usuarios en ‘M’?
891
![Page 24: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/24.jpg)
Tolerancia a Particiones
–
– –
–
891
¿Cuántos usuarios en ‘M’?
![Page 25: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/25.jpg)
La pregunta CAP
¿Puede un sistema distribuido garantizar:
Coherencia (todos los nodos tienen una visión actualizada),
disponibilidad/Availability (toda escritura/lectura es atendida)
y
tolerancia a Particiones (el sistema funciona incluso si hay
pérdida de mensajes)
al mismo tiempo?
¿Qué opinas?
![Page 26: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/26.jpg)
La respuesta CAP
![Page 27: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/27.jpg)
El teorema CAP
¡Un sistema distribuido no puede garantizar:
Coherencia (todos los nodos tienen una visión actualizada),
disponibilidad/Availability (toda escritura/lectura es atendida)
y
tolerancia a Particiones (el sistema funciona incluso si hay
pérdida de mensajes)
al mismo tiempo!
![Page 28: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/28.jpg)
La "demostración" CAP
–
– –
–
¿Cuántos usuarios en 'M'?
Hay 891 usuarios en
‘M’
Hay 891 usuarios en
‘M’
891
Hay 892 usuarios en
‘M’
![Page 29: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/29.jpg)
El triángulo CAP
C
A P
Eligedos
![Page 30: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/30.jpg)
Sistemas CAP
C
A P(No hay intersección)
CA: Garantiza respuestas
correctas sólo mientras la conexión funcione bien(Centralizado / Tradicional)
CP: Garantiza respuestas
correctas incluso si hay fallas en la conexión, pero la respuesta puede fracasar (Disponibilidad debíl)
AP: Siempre provee "la mejor"
respuesta que puede incluso en presencia de fallas en la conexión (Coherencia eventual)
![Page 31: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/31.jpg)
Sistema CA
–
– –
–
¿Cuántos usuarios en 'M'?
There’s 891 users in ‘M’
Hay 891 usuarios en
‘M’
Hay 892 usuarios en
‘M’
892Hay 892
usuarios en ‘M’
![Page 32: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/32.jpg)
Sistema CP
–
– –
–
¿Cuántos usuarios en 'M'?
Hay 891 usuarios en
‘M’
Hay 891 usuarios en
‘M’
¡Error!
Hay 892 usuarios en
‘M’
![Page 33: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/33.jpg)
Sistema AP
–
– –
–
¿Cuántos usuarios en 'M'?
There’s 891 users in ‘M’
Hay 891 usuarios en
‘M’
Hay 892 usuarios en
‘M’
891
![Page 34: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/34.jpg)
BASE (AP)
• Basically Available (básicamente disponible)
– Casi siempre funciona (está operando)
• Soft State (estado virtualizado)
– Información replicada / en caché
• Eventual Consistency (coherencia eventual)
– Se toleran, por un tiempo, datos obsoletos
¿De qué manera Twitter opera como un sistema BASE (AP)?
![Page 35: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/35.jpg)
Lady Gaga crea una “partición” de la red
Los usuarios pueden ver los retweetsde los tweets de las celebridades
antes del tweet original.Más tarde cuando llega el tweet original, el timeline
se ordenará de manera coherente.
![Page 36: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/36.jpg)
CAP en la práctica
C
A P
1. Fijar P2. Elegir un punto
intermedio entre C y A
![Page 37: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/37.jpg)
TOLERANCIA A PARTICIONES
![Page 38: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/38.jpg)
Fallas
![Page 39: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/39.jpg)
Falla "Fail–Stop"
• Una máquina no responde (a tiempo)
– a menudo, por falla del hardware o por sobrecarga
– se necesita al menos f + 1 máquinas replicadas
• f = número de fallas "fail–stop"
de 4.575.144
la 2.160.185
en 2.073.216
el 1.844.613
y 1.479.936
…
Conteode
palabras
![Page 40: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/40.jpg)
Falla Bizantina
• Una máquina responde de forma incorrecta
Conteode
palabras
de 4.575.144
la 2.160.185
en 2.073.216
el 1.844.613
y 1.479.936
…
el 4.575.144
po 2.160.185
sé 2.073.216
ni 1.844.613
al 1.479.936
…
de 4.575.144
la 2.160.185
en 2.073.216
el 1.844.613
y 1.479.936
…
¿Cuántas máquinas operativas necesitamos para corregir una falla bizantina?
![Page 41: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/41.jpg)
Falla Bizantina
• Una máquina responde de forma incorrecta
Conteode
palabras
de 4.575.144
la 2.160.185
en 2.073.216
el 1.844.613
y 1.479.936
…
el 4.575.144
po 2.160.185
sé 2.073.216
ni 1.844.613
al 1.479.936
…
de 4.575.144
la 2.160.185
en 2.073.216
el 1.844.613
y 1.479.936
…
¿Cuántas máquinas operativas necesitamos para corregir una falla bizantina?
Se necesitan 2f +1 máquinas replicadas
• f = número de fallas (posiblemente) bizantinas
![Page 42: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/42.jpg)
¿Consenso distribuido?
¿Color del vestido?
![Page 43: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/43.jpg)
¡Consenso!
Consenso distribuido
Consenso fuerte: Todos los nodos deben concordar
Blue
Blue
Blue
Blue
Blue
![Page 44: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/44.jpg)
Consenso distribuido
Consenso fuerte: Todos los nodos deben concordar
Blue
Blue
Blue
White
Blue
¡Sin consenso!
![Page 45: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/45.jpg)
Consenso distribuido
Consenso mayoritario: Debe concordar una mayoría
Blue
Blue
Blue
White
White
¡Consenso!
![Page 46: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/46.jpg)
Consenso distribuido
Consenso mayoritario: Debe concordar una mayoría
Blue
Blue
White
White
White
¡Consenso!
![Page 47: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/47.jpg)
Consenso distribuido
Consenso mayoritario: Debe concordar una mayoría
Blue
Blue
Green
White
White
Sin consenso.
![Page 48: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/48.jpg)
Consenso distribuido
Consenso plural: Debe concordar una pluralidad
Blue
Blue
Green
White
Orange
¡Consenso!
![Page 49: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/49.jpg)
Consenso distribuido
Consenso plural: Debe concordar una pluralidad
Blue
Blue
Green
White
White
Sin consenso.
![Page 50: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/50.jpg)
Consenso distribuido
Consenso de quorum: n nodos deben concordar
Blue
Blue
Blue
White
White
n = 3 : Consenso.
n = 4 : Sin consenso.
![Page 51: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/51.jpg)
Consenso distribuido
Consenso de quorum: n nodos deben concordar
Blue
Blue
Green
White
White
n = 2 Consenso.(Primeras 2 máquinas
consultas pero no es único!)
![Page 52: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/52.jpg)
Consenso distribuido
Consenso de quorum: n nodos deben concordar
Blue
Blue
Green
White
White
¿Valor de n necesario para un consenso único con N nodos? n > N /2
![Page 53: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/53.jpg)
Consenso distribuido
Consenso deshabilitado: Toma el primer resultado
Blue
Blue
Green
White
Orange
¡Consenso!
![Page 54: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/54.jpg)
CP
AP
Consenso distribuido
Consenso fuerte: Todos los nodos deben concordar
Consenso mayoritario: Deben concordar una mayoría
Consenso plural: Deben concordar una pluralidad
Consenso de quorum: Deben concordar n nodos
Consenso deshabilitado: Toma el primer resultado
¿CP vs. AP?
![Page 55: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/55.jpg)
Más replicación
Menos replicación
Consenso distribuido¿La escalabilidad?
Consenso fuerte: Todos los nodos deben concordar
Consenso mayoritario: Deben concordar una mayoría
Consenso plural: Deben concordar una pluralidad
Consenso de quorum: Deben concordar n nodos
Consenso deshabilitado: Toma el primer resultado
![Page 56: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/56.jpg)
Consenso fuerte: Todos los nodos deben concordar
Consenso mayoritario: Deben concordar una mayoría
Consenso plural: Deben concordar una pluralidad
Consenso de quorum: Deben concordar n nodos
Consenso deshabilitado: Toma el primer resultado
Consenso distribuido
La mejor elección depende de la aplicación:Muchos sistemas NoSQL permiten elegir
el nivel de consenso/replicación
![Page 57: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/57.jpg)
NOSQL:
SISTEMAS DE LLAVE–VALOR ("KEY–VALUE")
![Page 58: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/58.jpg)
Panorama de las bases de datos
Uso del modelo relaciones
Las bases de datos relaciones que se
enfoquen en la escalabilidad para
competir contra NoSQLa la vez que mantienen
ACID
Análisis de datos en lotesNo uso del modelo relacional
Tiempo real
Almacena documentos
(valores semi-estructurados)
No sólo SQL
Mapas
Orientados a columnas
Datos estructurados como grafos
En memoria
Almacenamiento en la nube
![Page 59: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/59.jpg)
Modelo de Llave–Valor
Es sólo un mapa •
•
•
![Page 60: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/60.jpg)
Pero se puede hacer mucho con un mapa
… de hecho se puede modelar todo tipo de datos en un mapa, pero con la posibilidad de redundancia de información
![Page 61: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/61.jpg)
EL CASO DE AMAZON
![Page 62: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/62.jpg)
El escenario en Amazon
Listado de productos: precios, detalle, stock, etc.
![Page 63: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/63.jpg)
El escenario en Amazon
Información de clientes: carro de compras, cuenta, etc.
![Page 64: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/64.jpg)
El escenario en Amazon
Recomendaciones, etc.:
![Page 65: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/65.jpg)
El escenario en Amazon
• Clientes de Amazon:
![Page 66: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/66.jpg)
El escenario en Amazon
![Page 67: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/67.jpg)
El escenario en Amazon
Bases de datos
sobreexigidas …
Pero muchos servicios de Amazon no necesitan:
• SQL (a menudo un mapa simple basta)
o incluso:
• transacciones, coherencia fuerte, etc.
![Page 68: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/68.jpg)
Guardado Llave-Valor: Amazon Dynamo(DB)
Objetivos:
• Escalabilidad
• Alta disponibilidad
• Rendimiento
No se necesita SQL ni ACID completos
![Page 69: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/69.jpg)
Guardado Llave-Valor: Distribución
O un particionadorpersonalizado …
¿Cómo se podría distribuir el guardado llave-valor?
![Page 70: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/70.jpg)
Guardado Llave-Valor: Distribución
O un particionadorpersonalizado …
¿Pero qué pasa si una máquina llega o se va de repente?
¿Cómo podemos evitar volver a hashear todo de nuevo?
![Page 71: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/71.jpg)
Hashing coherente ("Consistent Hashing")
Evitar volver a hashear todo de nuevo
• Hashear usando un anillo
• Cada máquina escoge n puntos pseudoaleatorios en el anillo
• La máquina es responsable del arco después de su punto
• Si una máquina se va, su rango se mueve a la máquina anterior
• Si una máquina se une, elige nuevos puntos
• Objetos mapeados al anillo
¿Cuántas llaves en promedio se necesitan
mover si una máquina se une o se va?
![Page 72: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/72.jpg)
Amazon Dynamo: Hashing
• Hashing coherente (128-bit MD5)
![Page 73: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/73.jpg)
Guardado llave-valor: Replicación
• Un factor de replicación fijo (aquí 3)
• Comúnmente hay réplicas primarias / secundarias
– Una nueva réplica primaria es elegida desde las réplicas
secundarias en caso de que falle la primaria
k v
k v
A1 B1 C1 D1 E1
k v
k vk v
k v
![Page 74: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/74.jpg)
Amazon Dynamo: Replicación
• ¿Factor de replicación de n?
– ¡Fácil! Elegir n arcos siguientes (¡con máquinas diferentes!)
![Page 75: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/75.jpg)
Amazon Dynamo: Versionamiento de objetos
• PUT no sobrescribe: desplaza la versión actual
• GET devuelve la versión más reciente
![Page 76: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/76.jpg)
Amazon Dynamo: Versionamiento de objetos
• DELETE no elimina de inmediato
• GET devolverá "no encontrado" después de borrar
![Page 77: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/77.jpg)
Amazon Dynamo: Versionamiento de objetos
• GET por versión
![Page 78: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/78.jpg)
Amazon Dynamo: Versionamiento de objetos
• PERMANENT DELETE por versión … eliminado
![Page 79: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/79.jpg)
Amazon Dynamo: Modelo
• Tabla nombrada con llave primaria y valor
• La llave primaria es hasheada / sin orden
![Page 80: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/80.jpg)
Amazon Dynamo: CAP
Dos opciones para cada tabla:
• AP: Coherencia eventual, Alta disponibilidad
• CP: Coherencia fuerte, Menor disponibilidad
![Page 81: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/81.jpg)
Amazon Dynamo: Coherencia
• Chismorreo "Gossiping"
– Mensajes de estado intercambiados entre nodos
– Dynamo en gran parte es decentralizado (no hay maestro)
• Quórums:
– Múltiples nodos responsables para una lectura (L) o escritura (E)
– Al menos L o E nodos deben confirmar
– Con L o E más alto = Coherencia más alta, Disponibilidad más baja
• "Hinted Handoff" (Traspasos temporales de responsabilidades)
– Para fallas temporales
– Un nodo “cubre” a otro nodo mientras está caído
![Page 82: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/82.jpg)
Amazon Dynamo: Coherencia
• Reloj vectorial:
– Una lista de pares indicando un nodo y una versión
– Monitorea las versiones
![Page 83: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/83.jpg)
Amazon Dynamo: Coherencia
• Dos versiones de un carro de compras
La aplicación es la que mejor sabe(… y debe poder soportar reconciliación explícitamente)
¿La mejor forma de unir versiones incompatibles?
(conocida como reconciliación)
![Page 84: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/84.jpg)
Amazon Dynamo: Coherencia
¿Cómo podemos verificar que dos bloques de datos sean
iguales (y encontrar las diferencias si existen)?
![Page 85: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/85.jpg)
Amazon Dynamo: Árboles de Merkle
• Árbol de Merkle:
– Un árbol de hash:
• Cada nodo hoja ("leaf node") computa los hashes desde los datos
• Los otros nodos tienen hashes de sus hijos
• Se pueden encontrar diferencias un nivel a la vez
![Page 86: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/86.jpg)
Para los interesados …
![Page 87: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/87.jpg)
OTROS GUARDADOS LLAVE-VALOR
![Page 88: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/88.jpg)
Otros sistemas de guardado llave-valor
![Page 89: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/89.jpg)
Otros sistemas de guardado llave-valor
![Page 90: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/90.jpg)
Otros sistemas de guardado llave-valor
![Page 91: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/91.jpg)
Otros sistemas de guardado llave-valor
Ahora es un guardado de tablas
![Page 92: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/92.jpg)
MODELO TABULAR / FAMILIA DE COLUMNAS
![Page 93: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/93.jpg)
Llave–Valor = un mapa distribuido
Tabular = un mapa multi-dimensional
![Page 94: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/94.jpg)
Bigtable: El "Whitepaper" Original
Autores de
MapReduce
![Page 95: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/95.jpg)
Bigtable es usado para …
…
![Page 96: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/96.jpg)
“Un mapa disperso ("sparse"), distribuido, persistente,
multi-dimensional y ordenado”
• Disperso: No todos los valores forman un cuadrado denso
• Distribuido: Muchas máquinas
• Persistente: Almacenamiento en disco (GFS)
• Multi-dimensional: Valores con columnas
• Ordenado: Lexicográficamente por llave de la fila
• Mapa: Buscas una llave, obtienes un valor
Bigtable: Modelo de Datos
![Page 97: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/97.jpg)
Bigtable: en resumen
(fila, columna, tiempo) → valor
• fila: el string identificador de una fila
– ej., “Afganistan”
• columna: el nombre de una columna
– ej., “pop-value”
• tiempo: un time-stamp (long / 64-bit)
– ej., 18545664
• valor: el elemento de una celda
– ej., “31120978”
![Page 98: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/98.jpg)
Bigtable: en resumen
31108077
(fila, columna, tiempo) → valor
(Afganistan,pop-value,t4) →
![Page 99: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/99.jpg)
Bigtable: llaves ordenadas
SORTED
¿Las ventajas de llaves ordenadas?
Consultas por rango y ...
![Page 100: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/100.jpg)
Bigtable: Tablets
ASIA
EUROPE
… localidad del procesamiento
¿Las ventajas de llaves ordenadas?
Consultas por rango y ...
![Page 101: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/101.jpg)
Un ejemplo real de localidad
![Page 102: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/102.jpg)
Bigtable: Distribución
Particiona por tablet
Partición horizontal por rango
![Page 103: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/103.jpg)
Bigtable: Familias de Columnas
• Agrupar columnas relacionadas
– Se acceden juntas de manera eficiente
– Control de acceso a nivel de familia de columnas
![Page 104: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/104.jpg)
Bigtable: Versionamiento
• Similar a Apache Dynamo
– A nivel de celda
– 64-bit time-stamps
– Insertar desplaza la versión actual
– Borrados perezosos / recolección de basura periódica
– Dos opciones:
• mantener las últimas n versiones
• mantener las versiones más recientes a un tiempo t
![Page 105: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/105.jpg)
Bigtable: Implementación de SSTable
• Bloques de 64k (por defecto) con índice en el pie (GFS)
• Indice cargado en memoria, permite búsquedas
0
65536
Index:
¿Escrituras?
![Page 106: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/106.jpg)
Bigtable: Escrituras en lotes
GFS
En memoria
Tablet log
Memtable
WRITE
READ
Tablet
SSTable1 SSTable2 SSTable3
Merge-sort
¿Cuál es el peligro?
![Page 107: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/107.jpg)
Bigtable: Log
• Si una máquina falla, la Memtable puede ser
reconstruida a partir del log
Tablet
SSTable1 SSTable2 SSTable3Tablet log
Memtable
GFS
En memoria
![Page 108: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/108.jpg)
Bigtable: Compactación Menor
• Cuando se llene, escribir Memtable como SSTable
Tablet log
Tablet
SSTable1 SSTable2 SSTable3
Memtable
SSTable4
Memtable
¿Problema de rendimiento?
GFS
En memoria
![Page 109: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/109.jpg)
Bigtable: Compactación con "Merge"
• Unir algunas de las SSTables (y la Memtable)
Tablet log
Tablet
SSTable1 SSTable2 SSTable3
Memtable
SSTable4
Memtable
SSTable1
READ
GFS
En memoria
![Page 110: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/110.jpg)
Bigtable: Compactación Mayor
• Unir todas las SSTables (y la Memtable)
• Hace más eficientes las lecturas
Tablet log
Tablet
SSTable1 SSTable2 SSTable3
SSTable4
SSTable1
READ
SSTable1
Memtable
GFS
En memoria
![Page 111: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/111.jpg)
• Seleccionar almacenamiento: SSTables pueden ser
persistentes o mantenerse en memoria.
• Compresión: Aplicada a bloques de SSTables;
puede elegirse una compresión personalizada.
• Cachés: A nivel de SSTable y de bloque.
• Filtros Bloom: Encontrar negativos de manera
barata
• …
Bigtable: Un montón de otras cosas
![Page 112: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/112.jpg)
Para los interesados …
![Page 113: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/113.jpg)
• Crear arreglo de bits de largo m (al inicio con 0’s)• Crear k funciones de hash que mapeen un objeto a un índice
del arreglo (distribución uniforme)• Indexación o: set m[hash1(o)], …, m[hashk(o)] a 1• Consulta o:
– algún m[hash1(o)], …, m[hashk(o)] seteado a 0 = no ha sido indexado– todos m[hash1(o)], …, m[hashk(o)] seteados a 1 = puede haber sido indexado
¡Rechaza consultas “vacias”
usando muy poca memoria!Aparte: Filtros Bloom
![Page 114: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/114.jpg)
Tabular: Apache HBase
![Page 115: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/115.jpg)
Tabular: Cassandra
![Page 116: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/116.jpg)
Panorama de las bases de datos
Uso del modelo relaciones
Las bases de datos relaciones que se
enfoquen en la escalabilidad para
competir contra NoSQLa la vez que mantienen
ACID
Análisis de datos en lotesNo uso del modelo relacional
Tiempo real
Almacena documentos
(valores semi-estructurados)
No sólo SQL
Mapas
Orientados a columnas
Datos estructurados como grafos
En memoria
Almacenamiento en la nube
![Page 117: Gestión de Datos - Aidan Hoganaidanhogan.com/teaching/gdd-2017/07/GdD2017-07.pdfLas bases de datos relacionales que se enfoquen en la escalabilidad para competir contra NoSQL a la](https://reader036.vdocumento.com/reader036/viewer/2022071605/6141bfced64cc55ff0755e85/html5/thumbnails/117.jpg)
¿Preguntas?