VictoriaLogs, el motor de logs desarrollado por VictoriaMetrics, organiza la información en un diseño columnar que optimiza compresión y velocidad de consulta. El sistema recibe registros mediante múltiples protocolos (JSON Lines, Elasticsearch bulk, Loki push, OpenTelemetry, syslog) y los convierte a un formato interno común formado por marca temporal, campos con nombre y una identidad de flujo (stream identity). Los flujos agrupan registros que comparten campos estables y de baja cardinalidad, como host o contenedor, lo que permite comprimir mejor los datos y limitar las consultas a los flujos relevantes.
A la entrada, los registros no se procesan uno a uno: se acumulan en búferes en memoria divididos en fragmentos, uno por núcleo de CPU, y cada segundo se transforman en una "parte" (part) consultable. Las partes in memoria se fusionan y, en intervalos cortos —controlados por el parámetro -inmemoryDataFlushInterval, con cinco segundos por defecto— se vacían a disco de forma masiva, lo que reduce las operaciones de escritura y permite absorber cerca de un gibibyte por segundo incluso en discos HDD de bajas IOPS.
Cada día natural en UTC constituye una partición, con dos componentes en disco: indexdb (catálogo de flujos del día) y datadb (las partes). Las partes son inmutables, lo que simplifica las copias de seguridad, y se dividen en pequeñas y grandes según cómo aprovechan la caché de páginas del sistema operativo. Métricas como vl_insert_flush_duration_seconds, vl_storage_parts o vl_pending_rows permiten al operador vigilar el rendimiento y diagnosticar incidentes.
