Tesis:

Gestión de Datos Masivos: Carga y Elasticidad


  • Autor: AZQUETA ALZÚAZ, Ainhoa

  • Título: Gestión de Datos Masivos: Carga y Elasticidad

  • Fecha: 2020

  • Materia: Sin materia definida

  • Escuela: E.T.S DE INGENIEROS INFORMÁTICOS

  • Departamentos: LENGUAJES Y SISTEMAS INFORMATICOS E INGENIERIA DE SOFTWARE

  • Acceso electrónico: http://oa.upm.es/66210/

  • Director/a 1º: PATIÑO MARTÍNEZ, Marta

  • Resumen: Con el auge de Internet la cantidad de datos generados ha crecido exponencialmente, la necesidad de analizar esta información y la aparición de nuevas aplicaciones que explotan estos datos dio lugar al desarrollo de distintos sistemas para la gestión de grandes cantidades de datos. El modelo tradicional de gestión de datos (bases de datos relacionales) no resultaba adecuado para todas las aplicaciones, además de no escalar a grandes cantidades de datos. Por esta razón se diseñaron distintos tipos de gestores de datos siendo las bases de datos NoSQL el paradigma más conocido, aunque no el único. Dentro de este tipo de bases de datos se encuentran las bases de datos para grafos, orientadas a documentos, almacenes clave-valor y las orientadas a columnas. Otro modelo completamente diferente son los sistemas de streaming de datos; los cuales procesan los datos al vuelo, sin almacenarlos. Ambos tipos de gestores de datos ejecutan en sistemas distribuidos con el fin de procesar grandes cantidades de datos. El objetivo de la tesis es el diseño de protocolos para la mejora del rendimiento de dos tipos de sistemas para la gestión de grandes cantidades de datos: una base de datos NoSQL (HBase) y un sistema de streaming de datos (UPM-CEP). Concretamente, en el caso de HBase se proponen protocolos para la carga de datos y equilibrado de carga. La optimización del proceso de carga de datos es fundamental para mejorar la disponibilidad del sistema (tiempo que el sistema está operativo). La carga de datos se paraleliza y tiene en cuenta la distribución de los mismos con el fin de ubicarlos en distintas máquinas y mejorar el rendimiento de las consultas. El equilibrado de carga distribuye los datos de manera uniforme entre los distintos nodos con el fin de paralelizar las consultas y mejorar el rendimiento (tiempo de respuesta y productividad). Los protocolos tienen en cuenta la arquitectura NUMA del sistema subyacente. También se han propuesto protocolos para dotar de elasticidad a un sistema de streaming de datos. La elasticidad permite al sistema realizar scale-in, paralelizando consultas en una misma máquina, scale-out, distribuyendo consultas o paralelizándolas en distintas máquinas, sin parar el sistema. En ambos casos los resultados se han validado en dos clústers con distinta arquitectura con una decena de nodos, así como en un superordenador, empleando benchmarks industriales, TPC-C e Intel HiBench. ----------ABSTRACT---------- With the rise of the Internet, the amount of data generated has grown exponentially, the need to analyse this information and the appearance of new applications that exploit this data led to the development of different systems for managing large amounts of data. The traditional data management model (relational databases) was not suitable for all applications, in addition to not scaling to large amounts of data. For this reason, different types of data management systems were designed, with NoSQL databases being the best known paradigm, although not the only one. Databases for graphs, documentoriented, key-value stores and column-oriented are NoSQL data stores. Another completely different model is the data streaming model; which process the data on the fly, without storing it. Both types of data management systems run on distributed systems in order to process large amounts of data. The goal of this thesis is the design of protocols to improve the performance of two types of systems for managing large amounts of data: a NoSQL database (HBase) and a data streaming system (UPM-CEP). Specifically, in the case of HBase, protocols for data loading and load balancing are proposed. Optimizing the data loading process is essential to improve system availability (time that the system is operational). The data load is parallelized and takes into account their distribution in order to place them on different machines and improve query performance. Load balancing distributes data evenly across nodes in order to parallelize queries and improve performance (response time and throughput). The protocols take into account the NUMA architecture of the underlying system. Protocols have also been proposed for providing elasticity to a data streaming system. Elasticity allows the system to scale-in, by parallelizing queries on the same machine, scale-out, by distributing queries or parallelizing them on different nodes, without stopping the system. In both cases, the results have been validated in two clusters with different architecture with a dozen nodes, as well as in a supercomputer, using industrial benchmarks, TPC-C and Intel HiBench.