Tesis:

Elasticidad y equilibrado dinámico de carga para una base de datos altamente distribuida


  • Autor: BURGOS SANCHO, Diego

  • Título: Elasticidad y equilibrado dinámico de carga para una base de datos altamente distribuida

  • Fecha: 2023

  • Materia: CONFIDENCIAL

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

  • Departamentos: LENGUAJES Y SISTEMAS INFORMATICOS E INGENIERIA DE SOFTWARE

  • Acceso electrónico: https://oa.upm.es/76703/

  • Director/a 1º: PATIÑO MARTINEZ, Marta
  • Director/a 2º: JIMENEZ PERIS, Ricardo

  • Resumen: En los últimos años, se ha consolidado una forma de desarrollar servicios software gracias al auge de las empresas proveedoras de servicios de computación en la nube pública. Las plataformas ofrecidas por estas empresas proporcionan facilidades para el escalado de estos servicios software, en función de la demanda recibida en cada momento. La cuestión radica en que las bases de datos actuales no están preparadas para un escenario en el que la carga de trabajo recibida sea de diferente intensidad. Por el contrario, se requiere que las bases de datos se encuentren dimensionadas para la máxima carga de trabajo que deba procesarse. Esta situación conlleva un alto coste para la infraestructura. Esta tesis pretende diseñar e implementar un sistema que aporte capacidades elásticas al gestor de bases de datos LeanXcale [8], de forma que se pueda adaptar su configuración en función del rendimiento solicitado, y así, ofrecer una respuesta adecuada en cada momento, optimizando el coste de la infraestructura. Este sistema se beneficia del escalado horizontal de LeanXcale, el cual es probado a lo largo de esta tesis. En dicha evaluación, se ha podido demostrar la escalabilidad lineal que ofrece LeanXcale, llegando a multiplicar por 200 el rendimiento alcanzado en un único nodo al escalar hasta las 200 máquinas. Para poder implementar la elasticidad en LeanXcale y permitir al sistema cambiar su despliegue de forma dinámica, se requiere que la base de datos tenga capacidad para mover carga entre las distintas instancias de cada componente. Para ello, se estudian los distintos módulos de LeanXcale y se proponen distintos algoritmos para mover datos entre las instancias de los componentes críticos en el rendimiento del sistema. El resultado de esta tesis es un algoritmo que permite el movimiento de carga entre regiones de datos. Asimismo, se permite modificar el despliegue de LeanXcale en aquellos escenarios en los que la carga de trabajo recibida así lo permita, logrando un uso óptimo de los recursos disponibles. Este algoritmo ha sido implementado en un nuevo componente de LeanXcale: Elasticity Manager. De esta manera, para validar la solución propuesta, se han realizado evaluaciones en entornos distribuidos, utilizando el benchmark más extendido en la industria para bases de datos transaccionales: el benchmark TPC-C. ABSTRACT In recent years, a way of developing software services has been consolidated thanks to the rise of public cloud computing service providers. The platforms offered by these companies provide facilities for scaling these software services, depending on the demand received at any given time. The issue lies in the fact that current databases are not prepared for a scenario in which the workload received is of varying intensity. On the contrary, databases are required to be sized for the maximum workload to be processed. This situation entails a high cost for the infrastructure. This thesis aims to design and implement a system that provides elastic capabilities to the LeanXcale [8] database manager, so that its configuration can be adapted according to the requested performance, and thus provide an adequate response at all times, optimizing the cost of the infrastructure. This system benefits from the horizontal scaling of LeanXcale, which is tested throughout this thesis. In this evaluation, it has been possible to demonstrate the linear scalability offered by LeanXcale, reaching a 200-fold increase in the performance achieved on a single node when scaling up to 200 machines. In order to implement elasticity in LeanXcale and allow the system to change its deployment dynamically, the database must be able to move load between the different instances of each component. For this purpose, the different modules of LeanXcale are studied and different algorithms are proposed to move data between the instances of the critical components in the system performance. The result of this thesis is an algorithm that allows load movement between data regions. It also allows modifying the deployment of LeanXcale in those scenarios where the received workload allows it, achieving an optimal use of the available resources. This algorithm has been implemented in a new LeanXcale component: Elasticity Manager. In order to validate the proposed solution, evaluations have been carried out in distributed environments, using the most widespread benchmark in the industry for transactional databases: the TPC-C benchmark.