Benchmarks
Review SlateDB performance results and learn how to run your own benchmarks
Release benchmarks
Section titled “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
Section titled “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
Section titled “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
Section titled “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.