miércoles, 5 de noviembre de 2025

Datadog Base de Datos Personalizada para Metricas Masivas

Datadog, una empresa líder en monitorización en la nube, enfrenta el desafío de ingerir miles de millones de puntos de datos por segundo. Para gestionar esta inmensa cantidad de información de forma rápida y eficiente, el equipo de ingeniería de Datadog optó por construir su propia solución desde cero: Monocle, un motor de almacenamiento de series temporales personalizado.

Datadog Base de Datos Personalizada para Metricas Masivas

La arquitectura de la plataforma de métricas de Datadog se divide en varios componentes. El 'Metrics Edge' actúa como la puerta de entrada, recibiendo el flujo constante de datos. Luego, el 'Storage Router' procesa estos datos y decide dónde almacenarlos, dividiéndolos en dos sistemas especializados: el 'Long-Term Metrics Storage' para análisis históricos y el 'Real-Time Metrics Storage' (RTDB) para datos recientes, que es el foco principal del artículo. El RTDB maneja el 99% de las consultas, impulsando los paneles en vivo y las alertas automatizadas.

Una decisión clave fue separar los datos (timestamp y valor) de los metadatos (tags). Los tags se almacenan en una 'Index Database' optimizada para búsquedas rápidas, mientras que el RTDB guarda los datos sin procesar. La organización del clúster de la base de datos es única, utilizando Apache Kafka como punto central para la escritura de datos. Kafka se encarga de la distribución de datos, actuando como Write-Ahead Log (WAL) para la seguridad de los datos y manejando la replicación para la recuperación ante desastres. Monocle, el motor de almacenamiento personalizado, está escrito en Rust y se basa en un modelo de datos simple, donde los tags se hashean para una búsqueda eficiente.

Monocle utiliza una arquitectura 'thread-per-core' y una estructura de almacenamiento Log-Structured Merge-Tree (LSM-Tree) para maximizar la velocidad de escritura. El equipo de Datadog implementó optimizaciones como un 'arena allocator' para una gestión de memoria eficiente y 'time-based file pruning' para ignorar archivos irrelevantes para las consultas. Para mantener la velocidad bajo presión, implementaron un sistema de dos capas que consiste en 'Admission Control' y 'Cost-Based Scheduling' para administrar la carga de consultas y evitar cuellos de botella.

El equipo de Datadog planea continuar evolucionando su plataforma. Los planes futuros incluyen el 'Smarter Routing', un sistema de balanceo de carga dinámico para adaptarse a los puntos calientes de las consultas, y la 'Colocate Points and Tags', fusionando las dos bases de datos separadas en un único sistema unificado utilizando un formato de base de datos columnar.

Fuente Original: https://blog.bytebytego.com/p/how-datadog-built-a-custom-database

Artículos relacionados de LaRebelión:

Artículo generado mediante LaRebelionBOT

No hay comentarios:

Publicar un comentario