VictoriaMetrics Open Source is a fast and scalable open-source time series database and monitoring solution. It's designed to allowing users to build a monitoring platform without scalability issues. The open source solution is ideal for solving use cases involving large amounts of time series data in IT infrastructure, APM, Kubernetes, IoT sensors, automotive vehicles, industrial telemetry, financial data, and other enterprise-level workloads.
The time series is consist of metrics and the values for corresponding timestamps. It looks like:
{"metric":{"__name__":"up","job":"node_exporter","instance":"localhost:9100"},"values":[0,0,0],"timestamps":[1549891472010,1549891487724,1549891503438]}
{"metric":{"__name__":"up","job":"prometheus","instance":"localhost:9090"},"values":[1,1,1],"timestamps":[1549891461511,1549891476511,1549891491511]}
Inverted Index (Full Text) Log-Structured Merge Tree
VictoriaMetrics stores the data in MergeTree, which is from ClickHouse and similar to LSM. The MergeTree has particular design decision compared to canonical LSM.
MergeTree is column-oriented. Each column is stored separately. And the data is sorted by the "primary key", and the "primary key" doesn't have to be unique. It speeds up the look-up through the "primary key", and gets the better compression ratio. The "parts" is similar to SSTable in LSM; it can be merged into bigger parts. But it doesn't have strict levels.
The Inverted Index is built on "mergeset" (A data structure built on top of MergeTree ideas). It's used for fast lookup by given the time-series selector.
https://github.com/VictoriaMetrics/VictoriaMetrics
https://docs.victoriametrics.com/
VictoriaMetrics
2018