Release benchmarks#
SlateDB publishes release benchmark results at
benchmark.slatedb.io. The
slatedb/slatedb-benchmark
repository contains the runner and workload definitions. It also stores the
raw results published on the site.
The release suite starts from a shared database with 300 million records, about
120 GiB of logical data. The runner applies a fixed workload catalog to each
SlateDB revision. The catalog combines relevant workloads from
YCSB Core and
RocksDB's
db_bench.
SlateDB-specific cases exercise idle behavior and transaction contention. Most
workloads run 64 closed-loop clients after a five-minute warmup and record 15
minutes of activity.
Other benchmarking tools#
-
slatedb-bencher
runs configurable database, compaction, and transaction benchmarks against
an object store. Its
README
documents the command-line options, and
benchmark-db.sh
provides an example workload matrix. -
SlateDB uses Criterion for
microbenchmarks of internal functions. The benchmark sources live in
slatedb/benches.
Nightly microbenchmarks#
The
nightly workflow
runs the Criterion microbenchmarks on WarpBuild's
warp-ubuntu-latest-arm64-8x ARM
runners. It also records profiles with pprof-rs
and uploads them to pprof.me. The GitHub Actions job summary
links to each profile.
Benchmarking object stores#
SlateDB benchmarks measure the database and object store together. Use
MinIO Warp to measure raw S3-compatible object
store performance without SlateDB in the request path. Warp runs concurrent
GET, PUT, DELETE, and mixed-request benchmarks with configurable object sizes
and concurrency. Run it from the same region and network used by your SlateDB
clients, ideally on the same machine, so the network path and client capacity
remain comparable.