Pebble Benchmarks
Last updated

Benchmarks are run nightly using pebble bench ycsb on AWS machines equipped with local SSD storage. The AWS instances show remarkably high instance to instance performance variability. In order to smooth out that variability the benchmarks are run multiple times each (using different instances) and outliers are excluded.
Options: Local scale

L0-sublevels and flush-splits enabled
Increased LogWriter free blocks 4->16
Began tracking ycsb/E read-amp
Level metadata switched to use a B-Tree
Enabled read-triggered compactions
Readahead and preallocation bug fixed
Removed excess read samples for read-triggered compactions
Switched to Ubuntu 20.04.2 LTS AMI
Read compaction fixes
Bumped benchmark runtime to 90 minutes
Data quality issue introduced (YCSB A only)
Data quality issue fixed (YCSB A only)
Began zeroing reused iterator structs (#1822)
Grandparent boundary compaction splitting
Infrastructure change (#2578)
ycsb/F sampling bug
Switched to m6id.4xlarge (from 5d.4xlarge)
Changed AWS machine type (#117852).
Enabled columnar blocks
YCSB A (50% reads, 50% updates, zipf key distribution)
YCSB B (95 reads, 5% updates, zipf key distribution)
YCSB C (100% reads, zipf key distribution)
YCSB D (95% reads, 5% updates, uniform key distribution)
YCSB E (95% scans, 5% updates, zipf key distribution)
Insert-only (100% inserts, zipf key distribution)

Write throughput (100% inserts, zipf key distribution)

This benchmark attempts to find the optimal write throughput by driving more and more load against the DB until a target heuristic fails (currently a mixture of number of L0 sublevels, L0 files, and whether the DB has experienced a write stall). These benchmarks are run nightly using pebble bench write on GCP n2-standard-32 machines equipped with 16 local SSDs in a RAID 0 array.