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 |
|---|---|---|---|---|---|---|---|---|---|
| 4M | 4.45K | 1.79K | 1.89K | 5.03K | 5.64K | 5.7K | 1.78K | 5.71K | |
Loading chart… | |||||||||
| 76.02M | 84.45K | 33.54K | 35.45K | 95.52K | 107.29K | 108.88K | 32.81K | 109.04K | |
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.57 | 1.78 | 0.72 | 0.76 | 2.01 | 2.26 | 2.28 | 0.71 | 2.29 | |
Loading chart… | |||||||||
| 29.73 | 33.83 | 13.43 | 14.2 | 38.26 | 42.98 | 43.61 | 13.14 | 43.67 | |
Loading chart… | |||||||||
Application latency
| API | avg ms | p0.1 | p1 | p50 | p99 | p99.9 | min | max |
|---|---|---|---|---|---|---|---|---|
| 13.69 | 0.02 | 0.02 | 0.08 | 113.6 | 173.06 | 0.01 | 1,747.97 | |
Loading chart… | ||||||||
| 0.04 | 0 | 0.01 | 0.03 | 0.2 | 0.46 | 0 | 9.96 | |
Loading chart… | ||||||||
| 0.03 | 0.03 | 0.03 | 0.03 | 0.03 | 0.03 | 0.03 | 0.03 | |
Loading chart… | ||||||||
Time from when a write returns until SlateDB first reports its sequence durable. | 246.27 | 65.79 | 95.42 | 237.57 | 478.21 | 692.74 | 44.54 | 1,092.61 |
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1.84M | 2.04K | 818.36 | 887.02 | 2.24K | 2.82K | 2.88K | 759.75 | 2.91K | $0.7352 | $2,117.17 | |
Loading chart… | |||||||||||
| 140 | 0.16 | 0 | 0 | 0 | 3 | 3 | 0 | 4 | $0.000700 | $2.02 | |
Loading chart… | |||||||||||
| 29.47K | 32.74 | 4 | 5.93 | 13 | 126 | 152 | 4 | 156 | $0.1474 | $424.36 | |
Loading chart… | |||||||||||
| 56 | 0.06 | 0 | 0 | 0 | 1 | 2 | 0 | 3 | $0.000022 | $0.0645 | |
Loading chart… | |||||||||||
| 6.46K | 7.18 | 0 | 0 | 0 | 200.03 | 237 | 0 | 244 | $0.00 | $0.00 | |
Loading chart… | |||||||||||
| 3.71K | 4.12 | 0 | 0 | 2 | 19 | 23 | 0 | 27 | $0.0185 | $53.36 | |
Loading chart… | |||||||||||
Object-store throughput
| Method | total GiB | avg MiB/s | p0.1 | p1 | p50 | p99 | p99.9 | min | max |
|---|---|---|---|---|---|---|---|---|---|
| 216.51 | 246.3 | 3.06 | 3.34 | 8.55 | 1,263.84 | 1,561.81 | 2.83 | 1,677.41 | |
Loading chart… | |||||||||
| 0.03 | 0.04 | 0 | 0 | 0 | 0.84 | 1.01 | 0 | 1.07 | |
Loading chart… | |||||||||
| 238.87 | 271.74 | 13.6 | 14.82 | 83.27 | 1,196.66 | 1,479.01 | 12.95 | 1,539.78 | |
Loading chart… | |||||||||
| 0 | 0 | 0 | 0 | 0 | 0.08 | 0.09 | 0 | 0.1 | |
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.27 | 1.12 | 1.16 | 3.42 | 15.71 | 19.59 | 1.09 | 20.65 | |
Loading chart… | ||||||||
| 19.98 | 16.21 | 16.35 | 19.83 | 22.49 | 22.5 | 16.21 | 22.5 | |
Loading chart… | ||||||||
Machine statistics
| Metric | avg | p0.1 | p1 | p50 | p99 | p99.9 | min | max |
|---|---|---|---|---|---|---|---|---|
| 16.33 | 3.39 | 3.55 | 10.51 | 48.84 | 60.75 | 3.39 | 64.47 | |
Loading chart… | ||||||||
| 21.8 | 18.06 | 18.2 | 21.66 | 24.24 | 24.25 | 18.05 | 24.25 | |
Loading chart… | ||||||||
| 253.61 | 3.77 | 4.19 | 10.53 | 1,296.05 | 1,600.72 | 3.53 | 1,726.11 | |
Loading chart… | ||||||||
| 283.02 | 16.34 | 16.88 | 89.16 | 1,221.97 | 1,519.5 | 14.6 | 1,599.21 | |
Loading chart… | ||||||||
| 0 | 0 | 0 | 0 | 0 | 0.09 | 0 | 0.46 | |
Loading chart… | ||||||||
| 0.02 | 0 | 0 | 0 | 0.15 | 1.23 | 0 | 1.46 | |
Loading chart… | ||||||||
| 0.14 | 0 | 0 | 0 | 0 | 2 | 0 | 117.04 | |
Loading chart… | ||||||||
| 0.55 | 0 | 0 | 0 | 12 | 19 | 0 | 31.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 | 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 | — |
| garbage collector options / boundary files enabled | Yes |
| garbage collector options / object store max retries | — |
| metric level | Info |
| default ttl | — |
| object store max retries | — |