data_storage_2.pdf
TRANSCRIPT
-
1Big Data Data Storage
Jess Montes & Jose M. Pea
Big DataData Storage (Mejoras de Rendimiento)
-
2Big Data Data Storage
Jess Montes & Jose M. Pea
Mejoras de rendimiento
Adems de los modelos de BD asociados a la tipologa de datos a gestionar
Hay tecnologas de almacenamiento/recuperacin orientadas a la mejora en el rendimiento: Bases de datos en memoria.
Bases de datos dispersas (sparse).
-
3Big Data Data Storage
Jess Montes & Jose M. Pea
Bases de datos en memoriaTema 2: Data Storage
-
4Big Data Data Storage
Jess Montes & Jose M. Pea
Concepto de BD en memoria
BD en memoria MMDB (Main Memory Data Bases)
Los datos residen permanentemente en memoria.
Se usa el disco como back up nicamente.
BD residentes en disco DRDB (Disk Resident Data Bases)
Los datos residen en disco.
Los datos pueden ser almacenados en memoria como memoria cache.
Principal diferencia: Dnde reside la copia principal?Disco
Memoria
-
5Big Data Data Storage
Jess Montes & Jose M. Pea
Aspectos a considerar en las MMDBs
Es razonable considerar que toda la BD reside en memoria? Depende de la aplicacin, en algunos casos s.
Depende de cunta memoria estemos hablando (un solo nodo o un cluster).
Cul es la diferencia entre una MMDB y una base de datos tradicional con mucha cache? Un aspecto de diseo: Aunque todos los datos entren en memoria una base de
datos clsica tiene sus estructuras de gestin diseadas para residir en disco: Localidad de los accesos.
Estructuras dinmicas vs. regulares.
-
6Big Data Data Storage
Jess Montes & Jose M. Pea
Aspectos diferenciales en el diseo
El diseo de las estructuras de control est determinado por una serie de restricciones diferentes en disco y en memoria: Los tiempos de acceso de memoria frente a
disco son rdenes de magnitud ms rpidos.
La memoria es voltil y el disco no (lo cual implica que se debe mantener su consistencia).
La ubicacin de los datos (lo que es el layout) en el disco es mucho ms relevante de cara al rendimiento que en el caso de la memoria.
Aspectos en los que tiene impacto: Control de concurrencia.
Procesamiento de commits.
Mtodos de acceso.
Representacin de datos.
Procesamiento de queries.
Recuperacin de la BD.
Rendimiento (en general).
-
7Big Data Data Storage
Jess Montes & Jose M. Pea
Aspectos diferenciales en el diseo
Control de concurrencia: Al ser ms rpidas las operaciones (que no implican lectura/escritura en disco) las
posibilidades de espera en la liberacin de los cerrojos son ms infrecuentes.
Procesamiento de commits: En las BD tradicionales las operaciones englobadas en transacciones mantiene un
registro de log no voltil para recuperacin ante fallo.
La gestin de un log estable (en disco) anulara el beneficio de tener los datos en memoria.
Mtodos de acceso: Los costes a minimizar en el acceso a estructuras de gestin (ndices) son
diferentes.
-
8Big Data Data Storage
Jess Montes & Jose M. Pea
Aspectos diferenciales en el diseo
Representacin de datos: Al gestionar referencias entre registros, en lugar de usar ndices a tablas se pueden
explotar el uso de punteros en memoria.
Procesamiento de queries: Est relacionado con el uso de los ndices en las consultas.
En BD tradicionales se debe minimizar el acceso a estos ndices y que ocupen un tamao razonable.
En MMDB es ms importante que el tiempo de cmputo que consumen y que lo que ocupan en memoria sea lo mnimo.
Recuperacin de la BD: Gestin de logs en memoria.
-
9Big Data Data Storage
Jess Montes & Jose M. Pea
Ejemplo de BD en memoria: Redis
BD de tipo clave-valor.
Remote Dictionary Server.
Desarrollado independientemente por Salvatore Sanfilippo luego contratado por VMWare.
Caracterstica principal: in-memory
Programado en C
Licencia BSD
-
10
Big Data Data Storage
Jess Montes & Jose M. Pea
Modelo lgico de datos de Redis
Modelo de datos: Claves: Cadena de
caracteres ASCII imprimibles.
Valor: Primitivas:
Strings: Array de max. 512MB
Contenedores: Hashes
Listas
Conjuntos.
Conjuntos ordenados.
Redis Key
Value: Redis Hash Value: Redis List Value: Redis Set Value: RedisSorted Set
Campo Valor
Campo Valor
Campo Valor
Campo Valor
HEAD Valor 1
Valor 2 Valor 3
Valor 4 TAIL
Valor 1
Valor 3
Valor 2
Valor 4
Score 4
Valor 1Score
Valor 3Score 6
Valor 2Score
Valor 4
-
11
Big Data Data Storage
Jess Montes & Jose M. Pea
APIs de desarrollo Redis
C / C++ / C#
Java
Perl
Python
Ruby
PHP
Objective-C
-
12
Big Data Data Storage
Jess Montes & Jose M. Pea
Arquitectura de Redis
El servidor implementa un nico hilo de trabajo (No hay bloqueos).
En modelos embebidos se pueden implementar otros hilos de proceso a los que sirve.
Particionado (sharding): Se hace a nivel de aplicacin.
Volcado de respaldo: Crea otro proceso con la misma memoria (usa COW con las pginas)
Escribe toda la BD
Tras una frecuencia y un nmero de cambios dados.
Log de operaciones: Fichero en modo append.
-
13
Big Data Data Storage
Jess Montes & Jose M. Pea
Almacenamiento de datos en memoria de Redis
Pares clave-valor: Tabla hash.
Hashes: Menos de 512 entradas: zipmap
Ms de 512 entradas: Tabla hash
Conjuntos: Menos de 512 enteros: intset
El resto: Tabla hash
Conjuntos ordenados: Lista por saltos indexada.
Tabla hash.
Listas: Menos de 512 entradas: zipmap
Ms de 512 entradas: Lista doblemente enlazada.
Wikipedia
-
14
Big Data Data Storage
Jess Montes & Jose M. Pea
Bases de datos dispersasTema 2: Data Storage
-
15
Big Data Data Storage
Jess Montes & Jose M. Pea
Motivacin: La escalabilidad de Google
Problema de escalabilidad y datos semi-estructurados:
No existan alternativas comerciales (y el coste sera prohibitivo).
El almacenamiento de los datos en crudo afecta al rendimiento Google quera aprovechar el Google File Systems (GFS).
-
16
Big Data Data Storage
Jess Montes & Jose M. Pea
Alternativa: BigTable
Mapa multinivel distribuido.
Tolerante a fallos y persistente.
Escalable: Nmero de servidores: ~1000s
En espacio (En memoria: ~TBs y En disco: ~PBs).
Accesos: Millones de lectura/escritura por segundo.
Mejoras especiales de rendimiento en recorridos (scans).
Facilidades de gestin: Servidores que pueden darse de alta/baja dinmicamente.
Servidores con equilibrado de carga.
-
17
Big Data Data Storage
Jess Montes & Jose M. Pea
Modelo de datos
Un mapa con varias dimensiones: Disperso: Densidad de datos en las combinacin de valores de todas las
dimensiones es baja.
Ordenado: Eficiencia en las bsquedas.
Distribuido: Despliegue sobre un cluster de gran tamao.
(row, column, timestamp) -> cell contents
Referencia original: Jing Zhang, Jeff Dean & Google
-
18
Big Data Data Storage
Jess Montes & Jose M. Pea
Filas y columnas
Fila: Una cadena como clave.
Acceso a la mis atmico.
Ordenacin lexicogrfica.
Por cuestiones de localidad se invierte el orden de la entrada (www.cnn.com com.cnn.www)
Columna: Nombrado de la estructura a dos
niveles: family: qualifier
La familia de columnas es la unidad de control de acceso.
-
19
Big Data Data Storage
Jess Montes & Jose M. Pea
Timestamps
Timestamps (sellos de tiempo) Almacenan diferentes versiones (temporales) de los contenidos de la celda.
Opciones de bsqueda: Devolver los k valores ms recientes.
Devolver todos.
-
20
Big Data Data Storage
Jess Montes & Jose M. Pea
Tablets
Una tabla se particionahorizontalmente (en un nmero de filas).
A cada particin se le denomina Tablet.
Las Tablets son la unidad de distribucin (para replicacin y equilibrado de carga).
Tab
let
XTa
ble
t Y
-
21
Big Data Data Storage
Jess Montes & Jose M. Pea
Operaciones
Operaciones de creacin: Crear/eliminar/modificar tablas y familias de comunas.
Escritura: Set(): Escritura de una celda.
DeleteCells(): Borrado de celdas puntuales en una fila.
DeleteRow(): Borrado de todas las celdas en esa fila.
Lectura: Scans (lectura puntual de celdas):
Cada fila se lee de forma atmica.
Se puede fijar las celdas devueltas a un rango de claves de fila.
Se pueden seleccionar 1/n/todas las filas y 1/m/todas familias de columnas.
-
22
Big Data Data Storage
Jess Montes & Jose M. Pea
Despliegue
Google File System(GFS): Almacenamiento
persistente (formato SSTable).
Chubby: Servicio de cerrojos:
Servidor distribuido.
Seleccin de master.
Planificador.
MapReduce (opcional)
Conjunto de mquinas que pueden estar ejecutando otras aplicaciones
-
23
Big Data Data Storage
Jess Montes & Jose M. Pea
Servidor de cerrojos Chubby
Servicio cerrojos, pero adems puede servir nombres y ficheros.
Cerrojos de grano grueso.
Cada cliente estable una sesin con el servidor Chubby: Funciona por licencias (lease) que el cliente debe renovar.
Se mantiene 5 rplicas: Se requiere una votacin por mayora para ser activado.
-
24
Big Data Data Storage
Jess Montes & Jose M. Pea
Despliegue
Cliente: Librera de acceso.
Nodo maestro: Asigna tablets a servidores. Detecta entrada/salida de
servidores. Equilibrado de carga (tablets
asociados a servidores). Operaciones: GC y metadata.
Servidores de tablets: Gestiona operaciones de
lectura/escritura sobre sus tablets.
Dividen las tablets que han crecido demasiado.
-
25
Big Data Data Storage
Jess Montes & Jose M. Pea
Parmetros de las tablets
Las tablets se asignan a los servidores de tablets. Las tablets almacenan un conjunto de filas contiguo.
Las aplicaciones cliente establecen la clave de fila para mejorar la localidad.
El tamao tpico son 100-200MB por tablet.
Un servidor de tablets es responsable de unos 100 tablets: Recuperacin rpida:
100 mquinas toman cada una uno de los tablets de la mquina cada.
Equilibrado de carga de grano fino: Se migran fuera las tablets de las mquinas sobrecargadas.
El nodo maestro toma las decisiones sobre el equilibrado de carga.
-
26
Big Data Data Storage
Jess Montes & Jose M. Pea
Dada una fila a recuperar, de qu forma los clientes localizan el rango de filas que incluye dicha fila?
Tablets de metadatos: Clave={table_id+end_row}, Datos:{location}
Gestin de caches y pre-fetching agresivo por parte del cliente.
Localizacin de las tablets
-
27
Big Data Data Storage
Jess Montes & Jose M. Pea
Asignacin de tablets
Cada tablet se asigna a un nico servidor.
Responsabilidades: Servidor chubby:
Le concede un cerrojo a los servidores de tablets que se registran (va lease) para acceder a un directorio del GFS.
Nodo Maestro: Monitoriza el conjunto de servidores de tablets que estn vivos. Para eso, utiliza el servidor chubby para determinar si los servidores estn vivos y recuperarlos. Asigna una tablet a un nodo si tiene espacio disponible. Monitoriza cada directorio para determinar si los servidores estn y responden. Si el servidor no responde (o ha perdido el cerrojo), dicho cerrojo lo captura el nodo maestro
que reasignar las tablets.
GFS: Encargado de replicar los datos.
-
28
Big Data Data Storage
Jess Montes & Jose M. Pea
Big DataData Storage (Mejoras de Rendimiento)