The fast, tiny
time-series database.
Anzaran stores anything with a timestamp — server metrics, sensor readings,
events — and answers questions about it in milliseconds, even with millions of series and the
whole team on dashboards at once. One small binary that runs on a $7-a-month VM.
Illustrative session — the commands and API shapes are real; measured performance
lives in the benchmarks.
[02] BENCHMARKS
Measured, not marketed.
Every claim above is a measurement below. Anzaran, QuestDB 9.4.3, and
VictoriaMetrics 1.136.0 ran side by side on one AWS c7i.2xlarge, each capped at 2 CPUs and 4 GB
RAM, ingesting the same 50 million points across one million series and answering identical
randomized queries. Forty-eight cross-engine correctness checks per competitor had to pass before
any latency counted — 48/48 vs both.
Per-workload latency — 1M series (cold p50 / p99, ms)
| Workload |
Anzaran |
QuestDB 9.4.3 |
VictoriaMetrics 1.136.0 |
| Scalar aggregate, 1 h window |
0.2 / 2.2 |
1.2 / 5.8 |
3.1 / 6.6 |
| Scalar aggregate, 6 h window |
0.6 / 1.2 |
2.3 / 3.3 |
19.5 / 26.6 |
| Scalar aggregate, 24 h window |
2.1 / 2.8 |
2.6 / 3.9 |
60.9 / 83.1 |
| GROUP BY 5m, 1 h window |
0.3 / 0.3 |
6.4 / 55.0 |
2.1 / 3.3 |
| GROUP BY 5m, 6 h window |
1.1 / 1.2 |
81.6 / 99.0 |
17.9 / 19.8 |
| GROUP BY 5m, 24 h window |
3.4 / 3.7 |
63.2 / 148.3 |
70.7 / 70.7 |
| One series of 1M, by label |
0.1 / 0.5 |
8.8 / 48.7 |
1.9 / 2.9 |
| Metric-wide aggregate over ALL 1M series |
0.1 / 0.4 |
1.7 / 1.9 |
1,924.2 / 2,190.8 |
Anzaran is fastest on all 8 shapes — every cell, both competitors.
Throughput under concurrency — 1M series
| Engine |
Clients |
QPS |
Cold p50 / p99 (ms) |
| Anzaran |
1 |
1,690 |
0.3 / 3.5 |
| Anzaran |
8 |
4,251 |
1.0 / 5.4 |
| Anzaran |
32 |
3,154 |
2.0 / 17.9 |
| QuestDB 9.4.3 |
1 / 8 / 32 |
97 / 164 / 127 |
2.7 → 265 p50 |
| VictoriaMetrics 1.136.0 |
1 / 8 / 32 |
2.5 / 3.7 / 3.3 |
6.6 → 5,077 p50 |
Anzaran serves 4,251 queries per second at 8 clients — ~26× QuestDB and
~1,100× VictoriaMetrics — with cold p50 of 2 ms or less at every concurrency level. QuestDB's p50
degrades ~98× from 1 to 32 clients; VictoriaMetrics collapses to ~4 QPS with multi-second
latencies at this cardinality. Anzaran deliberately admission-controls concurrent metric-wide
scans (two at a time; the rest receive an immediate retryable 429 rather than queueing) — that
back-pressure is included in the QPS shown.
Ingest — 1M series (zero errors, all engines)
| Workload |
Anzaran |
QuestDB 9.4.3 |
VictoriaMetrics 1.136.0 |
| Low cardinality, 1 stream (20M pts) |
3.94M pts/s |
2.26M pts/s |
2.26M pts/s |
| 1M series, 4 streams (30M pts) |
870K pts/s |
925K pts/s |
848K pts/s |
Ack semantics differ, and it matters: Anzaran's acknowledgment is durable —
every acked point is fsync'd to the write-ahead log before the 200. QuestDB acks with relaxed
commit lag; VictoriaMetrics acks from an in-memory buffer before any durable persistence. Anzaran
posts the fastest low-cardinality ingest of the three while giving the strongest guarantee.
10 million series — where the others stop
| Metric-wide count at N distinct series |
Anzaran |
| ~4.5M series |
0.69 s |
| ~7.0M series |
0.68 s |
| ~9.1M series |
2.45 s |
| ~9.5M series, randomized windows |
0.478 s |
| Sealed data (post-flush) |
0.2 ms |
Anzaran solo — at 10M series under the same 4 GB cap, neither competitor
completes the workload at all (a measured finding, not a jab: their ingest never finished inside
the harness limit). Counts are answered from maintained indexes, verified exact in-run by 23
closed-form count oracles and 6 value-sum oracles at 10M; the 0.2 ms sealed-data row is served
entirely from Anzaran's sorted-runs index and is labeled separately for exactly that reason.
Acked writes survive restarts — the contract is pinned by an automated ingest→restart→exact-count
chaos test in the release gate.
All tables: measured Aug 2026 on AWS c7i.2xlarge (8 vCPU / 16 GB), each
engine cgroup-capped at 2 CPU / 4 GB, official competitor images, identical line-protocol data,
randomized cache-defeating query windows. Honest caveats: one shared machine per run; comparisons
are relative; single-digit-ms deltas near the HTTP floor are transport, not engine.