A highly efficient time-series database approach for monitoring infrastructures

(English) The rising interest in extracting value from data has led to a broad proliferation of monitoring infrastructures, most notably composed by sensors, intended to collect this new oil. Thus, gathering data has become fundamental for a great number of applications, such as predictive maintenance techniques or anomaly detection algorithms. However, before data can be refined into insights and knowledge, it has to be efficiently stored and prepared for its later retrieval.   While General-purpose database management systems, such as Relational Database Management Systems, have been historically capable of managing a wide range of scenarios, they were found inefficient, or even unsuitable, in handling the Velocity and Volume of nowadays large Infrastructures.  Aiming to address the specific challenges of Monitoring Infrastructures, specialized systems like Time-Series Database Management Systems arose, becoming the fastest-growing database category since 2019. However, as each monitoring infrastructure has its own particularities, choosing the best fitting candidate solution became fairly laborious. In consequence, implementing efficient solutions involving Time-Series databases became an arduous task, not only in terms of investing in the most appropriate software and hardware infrastructure, but also in terms of finding expert personnel able to keep track and master those rapidly evolving technologies.  In order to mitigate these problems, this research proposes a highly efficient Time-Series database approach for monitoring Infrastructures, aimed at providing the best balance between performance and resource consumption, while enabling its deployment in general purpose document-oriented databases, relieving experts from having to learn yet-another database solution from scratch.  More precisely, our research provides the three following main contributions: (1) A foundation data model for time-series data over document-oriented databases, aimed at obtaining the best properties from both schema-full and schema-less approximations. (2) A technique for efficiently integrating several contiguous data models into a single time-series data store, creating a data-flow pattern named Cascading Polyglot Persistence. This technique makes it possible to adapt the database to the nature and progression of time-series data along time, as it is tailored to the expected operations to be performed according to the data aging, empowering further performance while limiting resource consumption. (3) A holistic scalability strategy for time-series databases following Cascading Polyglot Persistence, aimed at further maximizing the benefits of our polyglot approach when deploying it in a cluster fashion.   In order to evaluate the performance of our approach, we materialize it on top of MongoDB, the most popular NoSQL database, which further facilitates its adoption. In addition, we benchmark it against two alternative solutions: InfluxDB, the most popular time-series database, and MongoDB itself.  Our results show that our approach is able to retrieve historical data up to more than 10 times faster than MongoDB, while also globally outperforming InfluxDB. In addition, it has shown to be able to ingest streams of real-time data two times faster than both MongoDB and InfluxDB, while requesting the same disk space as InfluxDB. Regarding its ad hoc scalability approach, it has shown to greatly reduce the number of needed machines, with respect to traditional approaches, while offering a scalability efficiency up to 85%.  These outstanding outcomes pave the way towards NagareDB, our time-series database, aimed at integrating all these approaches, providing them as an out-of-the-box solution.                 (Español) El creciente interés en extraer valor de los datos ha llevado a una amplia proliferación de infraestructuras de monitoreo, compuestas por sensores, y destinadas a recolectar este nuevo petróleo. Así, la recopilación de datos se ha convertido en fundamental para un gran número de aplicaciones, como técnicas de mantenimiento predictivo o algoritmos de detección de anomalías. Sin embargo, antes de que los datos puedan refinarse para obtener información y conocimiento, deben almacenarse y prepararse de manera eficiente para su posterior recuperación.  Si bien los sistemas de administración de bases de datos de uso general, como los relacionales, históricamente han sido capaces de administrar una amplia gama de escenarios, se encontraron ineficientes, o incluso inadecuados, para manejar la velocidad y el volumen de las grandes infraestructuras actuales.  Con el objetivo de abordar los desafíos específicos de las infraestructuras de monitoreo, surgieron sistemas especializados, como los sistemas de administración de bases de datos de series temporales (TSDB), los cuales se convirtieron en la categoría de base de datos de más rápido crecimiento desde 2019. Sin embargo, dado que cada infraestructura de monitoreo tiene sus propias particularidades, elegir la solución más adecuada se volvió bastante laborioso. En consecuencia, implementar soluciones eficientes que involucren bases de datos para series temporales se convirtió en una ardua tarea, no solo en términos de seleccionar e invertir en la infraestructura de software y hardware más adecuada, sino también en términos de encontrar personal experto capaz de realizar un seguimiento adecuado y dominar esas tecnologías en rápida y constante evolución.  Por tal de mitigar estos problemas, esta investigación propone un diseño de TSDB altamente eficiente para infraestructuras de monitorización, con la intención de proporcionar el mejor equilibrio entre el rendimiento y el consumo de recursos. Particularmente, nuestra investigación proporciona las siguientes tres principales contribuciones: (1) Un modelo de datos para series temporales sobre bases de datos orientadas a documentos, con el objetivo de beneficiarse de sus propiedades de esquema flexible y de su popularidad. (2) Una técnica para integrar de manera eficiente varios modelos de datos contiguos en un solo almacén de datos, creando un patrón de flujo de datos denominado Persistencia Políglota en Cascada. Esta técnica permite adaptar la base de datos a la naturaleza y progresión de los datos de series temporales a lo largo del tiempo, ya que se adapta a las operaciones esperadas de acuerdo con el envejecimiento de los datos, lo que permite un mayor rendimiento y limita el consumo de recursos. (3) Una estrategia de escalabilidad holística, con el objetivo de maximizar aún más los beneficios de nuestro enfoque políglota cuando se implementa en forma de clúster.  Por tal de evaluar el rendimiento de nuestra propuesta, lo materializamos sobre MongoDB, la base de datos NoSQL más popular, lo que facilita aún más su adopción. Además, lo comparamos con dos soluciones alternativas: InfluxDB, TSDB más popular, y el mismo MongoDB. Los resultados muestran que nuestra propuesta es capaz de recuperar datos históricos hasta más de 10 veces más rápido que MongoDB, mientras que también supera globalmente a InfluxDB. Además, ha demostrado ser capaz de ingerir flujos de datos en tiempo real dos veces más rápido que MongoDB e InfluxDB, mientras requiere el mismo espacio en disco que InfluxDB. En cuanto a su escalabilidad, ha demostrado ser capaz de reducir en gran medida la cantidad de máquinas necesarias, al mismo tiempo que ofrece una eficiencia de escalabilidad de hasta el 85%.  Estos resultados positivos allanan el camino hacia NagareDB, nuestra TSDB, destinada a integrar todos estas propuestas y diseños, brindándolos como una solución lista para usar.