data_storage_2.pdf

28
1 Big Data – Data Storage © Jesús Montes & Jose M. Peña Big Data Data Storage (Mejoras de Rendimiento)

Upload: garfiolp

Post on 04-Sep-2015

214 views

Category:

Documents


0 download

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)