Benchmarks

The results, charts and methodology are on the Benchmarks page. The benchmark lives in the repository under bench/:

  • bench/v0/: the v0 comparison. ingest.py streams TSBS IoT into Timelake, Lance and PyIceberg as 5-minute micro-batches and runs each system’s maintenance; run_queries.sh runs the query suites; summarize.py writes bench/results/V0.md.
  • bench/run.py: the query runner. Each query runs in a fresh process: one first run, then repeats, with request and byte counts when going through the latency proxy.
  • bench/tools/s3proxy: a TCP proxy in front of RustFS that adds a fixed delay before each response and counts requests and bytes.
  • bench/queries/: the 12 TSBS IoT queries ported to every engine, and 5 single-device queries.
cd bench
for s in iceberg lance timelake; do .venv/bin/python v0/ingest.py --system $s --storage local; done
v0/run_queries.sh local ingested
.venv/bin/python v0/summarize.py > results/V0.md