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 |
|---|---|---|---|---|---|---|---|---|---|
| 4.51M | 5.01K | 1.31K | 2.02K | 5.25K | 5.87K | 5.99K | 888.9 | 6.04K | |
Loading chart… | |||||||||
| 85.78M | 95.3K | 25.41K | 38.19K | 99.82K | 112.5K | 114.08K | 16.14K | 115.54K | |
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 |
|---|---|---|---|---|---|---|---|---|---|
| 1.77 | 2.01 | 0.52 | 0.81 | 2.1 | 2.35 | 2.4 | 0.36 | 2.42 | |
Loading chart… | |||||||||
| 33.55 | 38.17 | 10.18 | 15.3 | 39.98 | 45.06 | 45.69 | 6.46 | 46.28 | |
Loading chart… | |||||||||
Application latency
| API | avg ms | p0.1 | p1 | p50 | p99 | p99.9 | min | max |
|---|---|---|---|---|---|---|---|---|
| 11.82 | 0.02 | 0.03 | 0.09 | 68.8 | 149.76 | 0.02 | 2,142.21 | |
Loading chart… | ||||||||
| 0.05 | 0 | 0.01 | 0.03 | 0.32 | 1.22 | 0 | 109.12 | |
Loading chart… | ||||||||
| 20.15 | 20.16 | 20.16 | 20.16 | 20.16 | 20.16 | 20.14 | 20.16 | |
Loading chart… | ||||||||
Time from when a write returns until SlateDB first reports its sequence durable. | 265.33 | 75.14 | 115.2 | 255.87 | 506.88 | 649.73 | 41.12 | 868.86 |
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2.02M | 2.25K | 777.04 | 970.19 | 2.3K | 2.69K | 2.74K | 699.92 | 2.8K | $0.8094 | $2,330.77 | |
Loading chart… | |||||||||||
| 5.63K | 6.25 | 2 | 2 | 5 | 17 | 23.06 | 1 | 24 | $0.0281 | $81.03 | |
Loading chart… | |||||||||||
| 31.86K | 35.4 | 4 | 5 | 14.01 | 122 | 150.02 | 4 | 152.07 | $0.1593 | $458.76 | |
Loading chart… | |||||||||||
| 369 | 0.41 | 0 | 0 | 0 | 6 | 7 | 0 | 7 | $0.000148 | $0.4250 | |
Loading chart… | |||||||||||
| 7.2K | 8 | 0 | 0 | 0 | 34 | 35 | 0 | 35.01 | $0.00 | $0.00 | |
Loading chart… | |||||||||||
| 3.99K | 4.43 | 0 | 0 | 2 | 23.01 | 27 | 0 | 30.98 | $0.0200 | $57.45 | |
Loading chart… | |||||||||||
Object-store throughput
| Method | total GiB | avg MiB/s | p0.1 | p1 | p50 | p99 | p99.9 | min | max |
|---|---|---|---|---|---|---|---|---|---|
| 229.42 | 261 | 3.72 | 3.91 | 11.04 | 1,184.55 | 1,453.35 | 3.7 | 1,485.99 | |
Loading chart… | |||||||||
| 1.15 | 1.31 | 0.13 | 0.32 | 1.04 | 4.06 | 4.68 | 0.12 | 5.24 | |
Loading chart… | |||||||||
| 251.55 | 286.17 | 9.85 | 16.35 | 86.67 | 1,080.45 | 1,323.18 | 7.7 | 1,375.29 | |
Loading chart… | |||||||||
| 0 | 0 | 0 | 0 | 0 | 0.01 | 0.01 | 0 | 0.01 | |
Loading chart… | |||||||||
| 0 | 0 | 0 | 0 | 0 | 0.03 | 0.03 | 0 | 0.04 | |
Loading chart… | |||||||||
Process statistics
| Metric | avg | p0.1 | p1 | p50 | p99 | p99.9 | min | max |
|---|---|---|---|---|---|---|---|---|
| 5.92 | 1.27 | 1.38 | 3.67 | 14.46 | 15.62 | 1.27 | 15.68 | |
Loading chart… | ||||||||
| 17.74 | 14.88 | 15.14 | 17.77 | 20.2 | 20.36 | 14.87 | 20.45 | |
Loading chart… | ||||||||
Machine statistics
| Metric | avg | p0.1 | p1 | p50 | p99 | p99.9 | min | max |
|---|---|---|---|---|---|---|---|---|
| 36.53 | 7.72 | 8.46 | 22.5 | 90.04 | 97.33 | 7.65 | 97.6 | |
Loading chart… | ||||||||
| 18.96 | 16.12 | 16.34 | 18.97 | 21.37 | 21.57 | 16.12 | 21.72 | |
Loading chart… | ||||||||
| 269.95 | 5.32 | 5.7 | 14.31 | 1,213.45 | 1,483.52 | 5.3 | 1,527.68 | |
Loading chart… | ||||||||
| 298.11 | 12.44 | 18.87 | 93.09 | 1,125.26 | 1,373.58 | 10.29 | 1,403.99 | |
Loading chart… | ||||||||
| 0 | 0 | 0 | 0 | 0.02 | 0.13 | 0 | 0.46 | |
Loading chart… | ||||||||
| 0.02 | 0 | 0 | 0 | 0.17 | 1.47 | 0 | 1.52 | |
Loading chart… | ||||||||
| 0.14 | 0 | 0 | 0 | 1 | 2 | 0 | 116.96 | |
Loading chart… | ||||||||
| 0.52 | 0 | 0 | 0 | 11.99 | 21 | 0 | 27 | |
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 / scheduler options / max compaction sources | 16 |
| compactor options / worker / max concurrent compactions | 4 |
| compactor options / worker / compactions poll interval | 5s |
| compactor options / worker / heartbeat bytes | 5 MiB |
| compactor options / worker / heartbeat min interval | 5s |
| 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 |
| 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 puts | 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 | 60s |
| garbage collector options / manifest options / min age | 300s |
| garbage collector options / manifest options / dry run | No |
| garbage collector options / WAL options / interval | 60s |
| garbage collector options / WAL options / min age | 300s |
| garbage collector options / WAL options / dry run | No |
| garbage collector options / WAL fence options / interval | 60s |
| garbage collector options / WAL fence options / min age | 300s |
| garbage collector options / WAL fence options / dry run | Yes |
| garbage collector options / compacted options / interval | 60s |
| garbage collector options / compacted options / min age | 300s |
| garbage collector options / compacted options / dry run | No |
| garbage collector options / compactions options / interval | 60s |
| garbage collector options / compactions options / min age | 300s |
| garbage collector options / compactions options / dry run | No |
| garbage collector options / detach options / interval | 60s |
| garbage collector options / metric level | — |
| metric level | Info |
| default ttl | — |