Skip to content

Benchmarks

go test -bench . -run XXX ./tests/ — from a development laptop (i7-9750H, SATA SSD, Go 1.26):

Benchmark Result Notes
Columnar scan ~19M samples/s merged segment, single channel, mmap + block decode
Merge throughput ~0.9M samples/s 51k rows, 20 entities, delta→columnar fold
Durable ingest (group commit) ~2K appends/s 2ms window, 12 parallel writers — fsync-bound on laptop disk

Reading the numbers:

  • Scans are where the columnar layout pays: tens of millions of samples per second on one core.
  • Durable ingest is bounded by the disk's fsync latency, by design — every ack means "on disk". Widen -group-commit and batch at the client (multi-row INSERT, ILP streams) to amortize; server-grade NVMe moves this an order of magnitude.
  • Compression on friendly data: steady-cadence timestamps ≈ 1 byte/point, constant f64 ≈ 1 bit/point, low-cardinality state strings collapse to RLE runs (guaranteed by tests, not just observed).

The chaos suite (concurrent writers + racing merges + readers + repeated crash/reopen cycles) runs with -race in CI fashion: zero acked-row loss is an invariant, not a benchmark.