Skip to main content

Ingestion

Ingestion was measured with p8s-bench, a harness around VictoriaMetrics’ prometheus-benchmark tool. The load generator produced samples for 5,100 targets every 60 seconds, for a total of ~3.3M unique active series. On a single m5.xlarge node (4 vCPU, 16 GB RAM) with SlateDB’s WAL disabled, Timeseries sustained:
Soak chart showing ingestion holding at ~55k samples/sec over time

Sustained ingestion rate over the soak test on a single m5.xlarge node.

Disabling the WAL is acceptable for many timeseries workloads, particularly those paired with a durable upstream log like OpenData Buffer.

Query latency

We measured query latency by replaying 18 queries from a production Grafana instance over a 6-hour range at 15-second resolution, against a single i4i.xlarge reader (4 vCPU, 32 GB RAM, NVMe disk cache) running v0.4.0. The chart groups queries by the number of series they match and plots the median latency per group.
Bar chart showing query latency rising with series count, with first-query-after-restart and warm latency nearly equal

Query latency by number of series scanned over a 6-hour range: first query after a restart vs. fully warm.

Warm latency scales with how many series a query touches: about 200 ms for a single-series query, about 730 ms at 112 series. Once recent data is in the block cache, queries stop paying object-store round trips. On the benchmark node, 8 GB of in-memory block cache plus 700 GB of NVMe-backed disk cache keep several weeks of data warm (assuming 1–2 bytes per sample for Gorilla-compressed blocks). OpenData Timeseries v0.4.0 added a startup cache warmer that prefetches the index structures and samples for recent data before the node begins serving; on the benchmark node it warmed 24 hours of data in under 30 seconds. You can configure k8s probes to only mark a node healthy once the cache is warmed. Practically, when combined with segmented compaction in SlateDB, you can ensure that most of your queries are warm even during scale-in and scale-out operations. Reads outside the warmed window pay the object-store round trip (10–100 ms per read).

Cost

The same workload (3.3M active series, 4.7B samples/day) costs roughly $560/month of compute:

Reproduce it