Workload
update-heavy
Runs closed-loop clients with 5% point reads and 95% updates against existing records selected from a scrambled Zipfian distribution.
Application operations
| API | total | avg/s | p0.1/s | p1/s | p50/s | p99/s | p99.9/s | min/s | max/s |
|---|---|---|---|---|---|---|---|---|---|
| 1.92M | 2.14K | 1.51K | 1.59K | 2.14K | 2.62K | 2.74K | 47.99 | 2.8K | |
Loading chart… | |||||||||
| 36.54M | 40.53K | 27.81K | 29.75K | 40.62K | 50.19K | 52.87K | 0 | 54.6K | |
Loading chart… | |||||||||
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
Loading chart… | |||||||||
Application throughput
| API | total GiB | avg MiB/s | p0.1 | p1 | p50 | p99 | p99.9 | min | max |
|---|---|---|---|---|---|---|---|---|---|
| 0.75 | 0.86 | 0.6 | 0.64 | 0.86 | 1.05 | 1.1 | 0.02 | 1.12 | |
Loading chart… | |||||||||
| 14.29 | 16.24 | 11.14 | 11.92 | 16.27 | 20.1 | 21.18 | 0 | 21.87 | |
Loading chart… | |||||||||
Application latency
| API | avg ms | p0.1 | p1 | p50 | p99 | p99.9 | min | max |
|---|---|---|---|---|---|---|---|---|
| 29.57 | 0.02 | 0.02 | 0.07 | 274.69 | 1,106.94 | 0.01 | 4,915.2 | |
Loading chart… | ||||||||
| 0.02 | 0 | 0 | 0.01 | 0.07 | 0.19 | 0 | 8.21 | |
Loading chart… | ||||||||
| 0.69 | 0.69 | 0.69 | 0.69 | 0.69 | 0.69 | 0.69 | 0.69 | |
Loading chart… | ||||||||
Time from when a write returns until SlateDB first reports its sequence durable. | 540.73 | 97.66 | 129.28 | 354.3 | 5,451.78 | 10,715.14 | 58.75 | 11,476.99 |
Loading chart… | ||||||||
Object-store operations
| Method | total | avg/s | p0.1/s | p1/s | p50/s | p99/s | p99.9/s | min/s | max/s | $ | $/month |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 865.2K | 959.82 | 636.01 | 717.86 | 958.01 | 1.26K | 1.39K | 4 | 1.43K | $0.3461 | $995.14 | |
Loading chart… | |||||||||||
| 9 | 0.01 | 0 | 0 | 0 | 0 | 2 | 0 | 3 | $0.000045 | $0.1294 | |
Loading chart… | |||||||||||
| 8.37K | 9.29 | 0 | 1 | 7 | 46.01 | 60 | 0 | 73 | $0.0419 | $120.38 | |
Loading chart… | |||||||||||
| 45 | 0.05 | 0 | 0 | 0 | 1 | 2 | 0 | 3 | $0.000018 | $0.0518 | |
Loading chart… | |||||||||||
| 1.92K | 2.13 | 0 | 0 | 0 | 100.99 | 273.82 | 0 | 300.13 | $0.00 | $0.00 | |
Loading chart… | |||||||||||
| 1.32K | 1.46 | 0 | 0 | 1 | 10 | 13 | 0 | 15 | $0.006580 | $18.92 | |
Loading chart… | |||||||||||
Object-store throughput
| Method | total GiB | avg MiB/s | p0.1 | p1 | p50 | p99 | p99.9 | min | max |
|---|---|---|---|---|---|---|---|---|---|
| 32.15 | 36.52 | 2.36 | 2.68 | 3.66 | 462.58 | 623.7 | 0.18 | 774.86 | |
Loading chart… | |||||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0.41 | 0 | 0.83 | |
Loading chart… | |||||||||
| 48.46 | 55.05 | 0 | 0 | 20.81 | 412 | 582.33 | 0 | 668.47 | |
Loading chart… | |||||||||
| 0 | 0 | 0 | 0 | 0 | 0.04 | 0.11 | 0 | 0.12 | |
Loading chart… | |||||||||
| 0 | 0 | 0 | 0 | 0 | 0.01 | 0.01 | 0 | 0.01 | |
Loading chart… | |||||||||
Process statistics
| Metric | avg | p0.1 | p1 | p50 | p99 | p99.9 | min | max |
|---|---|---|---|---|---|---|---|---|
| 1.73 | 0.87 | 0.98 | 1.52 | 5.41 | 7.71 | 0.1 | 8.36 | |
Loading chart… | ||||||||
| 13.88 | 8.34 | 8.37 | 14.7 | 16.97 | 16.97 | 8.29 | 16.97 | |
Loading chart… | ||||||||
Machine statistics
| Metric | avg | p0.1 | p1 | p50 | p99 | p99.9 | min | max |
|---|---|---|---|---|---|---|---|---|
| 5.37 | 2.73 | 3.1 | 4.68 | 16.84 | 24.39 | 0.38 | 26.37 | |
Loading chart… | ||||||||
| 15.64 | 10.15 | 10.19 | 16.46 | 18.71 | 18.72 | 10.1 | 18.73 | |
Loading chart… | ||||||||
| 38.75 | 2.94 | 3.42 | 4.57 | 481.5 | 648.91 | 0.32 | 806.48 | |
Loading chart… | ||||||||
| 58.61 | 0.8 | 7.12 | 23.25 | 426.76 | 614.58 | 0.67 | 705.62 | |
Loading chart… | ||||||||
| 0 | 0 | 0 | 0 | 0.07 | 0.2 | 0 | 0.45 | |
Loading chart… | ||||||||
| 0.01 | 0 | 0 | 0 | 0.14 | 1.67 | 0 | 2.05 | |
Loading chart… | ||||||||
| 0.14 | 0 | 0 | 0 | 1 | 2 | 0 | 116.01 | |
Loading chart… | ||||||||
| 0.47 | 0 | 0 | 0 | 10.99 | 22.02 | 0 | 22.99 | |
Loading chart… | ||||||||
Benchmark configuration
| Key | Value |
|---|---|
| scale | 1 |
| dataset / record count | 300,000,000 |
| dataset / key bytes | 20 B |
| dataset / value bytes | 400 B |
| dataset / value compression ratio | 1 |
| caches / block bytes | 8 GiB |
| caches / metadata bytes | 4 GiB |
| task / task | update-heavy |
| task / clients | 64 |
| task / warmup ms | 300,000 ms |
| task / measurement ms | 900,000 ms |
| task / initial state | golden |
| task / key selection | scrambled-zipfian-0.99 |
| task / operation mix / get | 0.05 |
| task / operation mix / put | 0.95 |
| task / scan limit | — |
| task / transaction hot keys | — |
| task / transaction reads | — |
| task / transaction updates | — |
| build profile | release |
| enabled features | aws, foyer, wal_disable, zstd |
SlateDB configuration
| Key | Value |
|---|---|
| flush interval | 100ms |
| WAL enabled | Yes |
| manifest poll interval | 1s |
| manifest update timeout | 300s |
| min filter keys | 1,000 |
| L0 SST size bytes | 64 MiB |
| max WAL flushes before L0 flush | 4,096 |
| L0 max ssts | 32 |
| L0 max ssts per key | 32 |
| L0 flush parallelism | 4 |
| max unflushed bytes | 2 GiB |
| compactor options / poll interval | 5s |
| compactor options / manifest update timeout | 300s |
| compactor options / max concurrent compactions | 4 |
| compactor options / enable trivial move | No |
| compactor options / scheduler options / max compaction sources | 16 |
| compactor options / worker / max concurrent compactions | 4 |
| compactor options / worker / compactions poll interval | 5s |
| compactor options / worker / heartbeat interval | 10s |
| compactor options / worker / max SST size | 268,435,456 |
| compactor options / worker / max fetch tasks | 4 |
| compactor options / worker / bytes to fetch | 2,097,152 |
| compactor options / worker / max subcompactions | 8 |
| compactor options / worker / min filter keys | 1,000 |
| compactor options / worker / compression codec | — |
| compactor options / worker / metric level | — |
| compactor options / metric level | — |
| compactor options / commit compacted interval | 1s |
| compactor options / worker heartbeat timeout | 30s |
| compactor options / object store max retries | — |
| compression codec | — |
| object store cache options / root folder | — |
| object store cache options / max cache size bytes | — |
| object store cache options / part size bytes | 4 MiB |
| object store cache options / cache on flush | No |
| object store cache options / cache on compaction | No |
| object store cache options / preload disk cache on startup | — |
| object store cache options / scan interval | 3600s |
| object store cache options / max open file handles | 1,000 |
| garbage collector options / manifest options / interval | 600s |
| garbage collector options / manifest options / min age | 300s |
| garbage collector options / manifest options / dry run | No |
| garbage collector options / WAL options / interval | 600s |
| garbage collector options / WAL options / min age | 300s |
| garbage collector options / WAL options / dry run | No |
| garbage collector options / WAL fence options / interval | 600s |
| garbage collector options / WAL fence options / min age | 300s |
| garbage collector options / WAL fence options / dry run | Yes |
| garbage collector options / compacted options / interval | 600s |
| garbage collector options / compacted options / min age | 300s |
| garbage collector options / compacted options / dry run | No |
| garbage collector options / compactions options / interval | 600s |
| garbage collector options / compactions options / min age | 300s |
| garbage collector options / compactions options / dry run | No |
| garbage collector options / detach options / interval | 600s |
| garbage collector options / metric level | — |
| garbage collector options / boundary files enabled | Yes |
| garbage collector options / object store max retries | — |
| metric level | Info |
| default ttl millis | — |
| object store max retries | — |