Workload
transaction-contention
Runs serializable snapshot transactions against a 10,000-record hot set. Each transaction shuffles five reads and five updates before committing.
Application operations
| API | total | avg/s | p0.1/s | p1/s | p50/s | p99/s | p99.9/s | min/s | max/s |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
Loading chart… | |||||||||
| 155.25M | 172.4K | 153.68K | 159.08K | 172.82K | 183.38K | 187.43K | 153.17K | 189.32K | |
Loading chart… | |||||||||
| 155.25M | 172.4K | 153.68K | 159.07K | 172.81K | 183.37K | 187.43K | 153.16K | 189.32K | |
Loading chart… | |||||||||
| 24.33M | 27.01K | 24.04K | 25.01K | 27.07K | 28.75K | 29.18K | 24.02K | 29.66K | |
Loading chart… | |||||||||
| 6.72M | 7.47K | 6.38K | 6.65K | 7.49K | 7.98K | 8.2K | 6.32K | 8.31K | |
Loading chart… | |||||||||
Application throughput
| API | total GiB | avg MiB/s | p0.1 | p1 | p50 | p99 | p99.9 | min | max |
|---|---|---|---|---|---|---|---|---|---|
| 60.73 | 69.06 | 61.56 | 63.72 | 69.22 | 73.45 | 75.07 | 61.35 | 75.83 | |
Loading chart… | |||||||||
| 60.73 | 69.06 | 61.56 | 63.72 | 69.22 | 73.45 | 75.07 | 61.35 | 75.83 | |
Loading chart… | |||||||||
Application latency
| API | avg ms | p0.1 | p1 | p50 | p99 | p99.9 | min | max |
|---|---|---|---|---|---|---|---|---|
| 509.31 | 509.44 | 509.44 | 509.44 | 509.44 | 509.44 | 509.18 | 509.44 | |
Loading chart… | ||||||||
| 0.03 | 0.02 | 0.02 | 0.03 | 0.09 | 0.14 | 0.01 | 11.27 | |
Loading chart… | ||||||||
| 0 | 0 | 0 | 0 | 0.01 | 0.02 | 0 | 8.78 | |
Loading chart… | ||||||||
| 1.66 | 0.67 | 1.32 | 1.61 | 2.32 | 3.34 | 0.01 | 15 | |
Loading chart… | ||||||||
| 1.65 | 1.06 | 1.33 | 1.6 | 2.3 | 3.3 | 0.01 | 13.48 | |
Loading chart… | ||||||||
Time from when a write returns until SlateDB first reports its sequence durable. | 451.49 | 181.25 | 215.17 | 408.83 | 1,267.71 | 2,449.41 | 140.29 | 3,026.94 |
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 42.79K | 47.52 | 4 | 4 | 16.99 | 324.73 | 410.95 | 4 | 438.11 | $0.0171 | $49.26 | |
Loading chart… | |||||||||||
| 4.73K | 5.26 | 2 | 2 | 4 | 13.99 | 15 | 1 | 16.01 | $0.0237 | $68.12 | |
Loading chart… | |||||||||||
| 10.32K | 11.46 | 4 | 4 | 10 | 27.01 | 29.02 | 3 | 31.02 | $0.0516 | $148.51 | |
Loading chart… | |||||||||||
| 252 | 0.28 | 0 | 0 | 0 | 4 | 6 | 0 | 6 | $0.000101 | $0.2901 | |
Loading chart… | |||||||||||
| 6.13K | 6.8 | 0 | 0 | 0 | 32 | 33 | 0 | 34 | $0.00 | $0.00 | |
Loading chart… | |||||||||||
| 1.63K | 1.81 | 1 | 1 | 2 | 2 | 3 | 0 | 3 | $0.008165 | $23.50 | |
Loading chart… | |||||||||||
Object-store throughput
| Method | total GiB | avg MiB/s | p0.1 | p1 | p50 | p99 | p99.9 | min | max |
|---|---|---|---|---|---|---|---|---|---|
| 24.27 | 27.6 | 0.1 | 0.1 | 0.3 | 307.92 | 375.22 | 0.03 | 452.68 | |
Loading chart… | |||||||||
| 1.12 | 1.27 | 0.4 | 0.42 | 1.01 | 3.5 | 4.14 | 0.29 | 4.3 | |
Loading chart… | |||||||||
| 72.44 | 82.37 | 43.37 | 48.19 | 81.74 | 127.3 | 155.09 | 34.49 | 183.66 | |
Loading chart… | |||||||||
| 0 | 0 | 0 | 0 | 0 | 0.01 | 0.01 | 0 | 0.01 | |
Loading chart… | |||||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
Loading chart… | |||||||||
Process statistics
| Metric | avg | p0.1 | p1 | p50 | p99 | p99.9 | min | max |
|---|---|---|---|---|---|---|---|---|
| 8.29 | 6.9 | 7.02 | 8.11 | 10.94 | 11.19 | 6.76 | 11.39 | |
Loading chart… | ||||||||
| 12.72 | 9.62 | 9.93 | 12.81 | 14.25 | 14.29 | 9.54 | 14.32 | |
Loading chart… | ||||||||
Machine statistics
| Metric | avg | p0.1 | p1 | p50 | p99 | p99.9 | min | max |
|---|---|---|---|---|---|---|---|---|
| 50.88 | 41.92 | 42.86 | 49.77 | 67.12 | 69.62 | 40.55 | 69.81 | |
Loading chart… | ||||||||
| 13.93 | 10.81 | 11.2 | 14.01 | 15.48 | 15.51 | 10.76 | 15.53 | |
Loading chart… | ||||||||
| 29.77 | 0.64 | 0.67 | 1.96 | 316.64 | 383.16 | 0.63 | 466.36 | |
Loading chart… | ||||||||
| 84.73 | 46.06 | 50.8 | 84.01 | 130.65 | 143.38 | 45.67 | 152.55 | |
Loading chart… | ||||||||
| 0 | 0 | 0 | 0 | 0.08 | 0.25 | 0 | 0.46 | |
Loading chart… | ||||||||
| 0.02 | 0 | 0 | 0 | 0.18 | 1.39 | 0 | 2.33 | |
Loading chart… | ||||||||
| 0.15 | 0 | 0 | 0 | 1 | 3 | 0 | 117 | |
Loading chart… | ||||||||
| 0.58 | 0 | 0 | 0 | 11.02 | 27.01 | 0 | 37.02 | |
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 | transaction-contention |
| task / clients | 64 |
| task / warmup ms | 300,000 ms |
| task / measurement ms | 900,000 ms |
| task / initial state | golden |
| task / key selection | uniform-hot-set |
| task / operation mix / transaction | 1 |
| task / scan limit | — |
| task / transaction hot keys | 10,000 |
| task / transaction reads | 5 |
| task / transaction updates | 5 |
| 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 | — |