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… | |||||||||
| 159.32M | 176.96K | 163.72K | 166.91K | 177.34K | 184.11K | 186.7K | 163.41K | 187.16K | |
Loading chart… | |||||||||
| 159.32M | 176.96K | 163.71K | 166.91K | 177.34K | 184.11K | 186.7K | 163.41K | 187.15K | |
Loading chart… | |||||||||
| 24.96M | 27.72K | 25.69K | 26.18K | 27.77K | 28.85K | 29.2K | 25.65K | 29.34K | |
Loading chart… | |||||||||
| 6.91M | 7.67K | 7.09K | 7.19K | 7.68K | 8.03K | 8.15K | 6.99K | 8.22K | |
Loading chart… | |||||||||
Application throughput
| API | total GiB | avg MiB/s | p0.1 | p1 | p50 | p99 | p99.9 | min | max |
|---|---|---|---|---|---|---|---|---|---|
| 62.32 | 70.88 | 65.58 | 66.86 | 71.03 | 73.74 | 74.78 | 65.45 | 74.97 | |
Loading chart… | |||||||||
| 62.32 | 70.88 | 65.57 | 66.86 | 71.03 | 73.75 | 74.78 | 65.45 | 74.96 | |
Loading chart… | |||||||||
Application latency
| API | avg ms | p0.1 | p1 | p50 | p99 | p99.9 | min | max |
|---|---|---|---|---|---|---|---|---|
| 337.28 | 337.41 | 337.41 | 337.41 | 337.41 | 337.41 | 337.15 | 337.41 | |
Loading chart… | ||||||||
| 0.03 | 0.01 | 0.02 | 0.03 | 0.09 | 0.13 | 0.01 | 5.88 | |
Loading chart… | ||||||||
| 0 | 0 | 0 | 0 | 0 | 0.01 | 0 | 5.58 | |
Loading chart… | ||||||||
| 1.62 | 1.25 | 1.33 | 1.59 | 2.15 | 2.92 | 0.01 | 7.39 | |
Loading chart… | ||||||||
| 1.61 | 1.25 | 1.33 | 1.58 | 2.13 | 2.9 | 0.16 | 7.37 | |
Loading chart… | ||||||||
Time from when a write returns until SlateDB first reports its sequence durable. | 477.38 | 186.62 | 219.9 | 436.48 | 1,091.58 | 1,344.51 | 130.11 | 1,490.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 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 40.15K | 44.6 | 2 | 2 | 10.01 | 316.96 | 410.21 | 1 | 430.07 | $0.0161 | $46.24 | |
Loading chart… | |||||||||||
| 121 | 0.13 | 0 | 0 | 0 | 3 | 3 | 0 | 4 | $0.000605 | $1.74 | |
Loading chart… | |||||||||||
| 9.29K | 10.32 | 3 | 4 | 9 | 25.01 | 29 | 1 | 30.01 | $0.0464 | $133.71 | |
Loading chart… | |||||||||||
| 113 | 0.13 | 0 | 0 | 0 | 1 | 2 | 0 | 4 | $0.000045 | $0.1301 | |
Loading chart… | |||||||||||
| 5.11K | 5.67 | 0 | 0 | 0 | 140.04 | 188.06 | 0 | 190.05 | $0.00 | $0.00 | |
Loading chart… | |||||||||||
| 1.68K | 1.86 | 1 | 1 | 2 | 2 | 3 | 0 | 3 | $0.008380 | $24.12 | |
Loading chart… | |||||||||||
Object-store throughput
| Method | total GiB | avg MiB/s | p0.1 | p1 | p50 | p99 | p99.9 | min | max |
|---|---|---|---|---|---|---|---|---|---|
| 27.43 | 31.2 | 0 | 0 | 0 | 298.43 | 431.57 | 0 | 488.46 | |
Loading chart… | |||||||||
| 0.03 | 0.03 | 0 | 0 | 0 | 0.57 | 0.86 | 0 | 0.92 | |
Loading chart… | |||||||||
| 76.99 | 87.56 | 41.94 | 52.27 | 86.65 | 135.6 | 146.07 | 41.29 | 149.69 | |
Loading chart… | |||||||||
| 0 | 0 | 0 | 0 | 0 | 0.06 | 0.08 | 0 | 0.08 | |
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 |
|---|---|---|---|---|---|---|---|---|
| 7.67 | 6.06 | 6.24 | 7.52 | 10.6 | 11.27 | 5.91 | 11.37 | |
Loading chart… | ||||||||
| 14.97 | 10.76 | 10.93 | 15.28 | 17.08 | 17.08 | 10.62 | 17.11 | |
Loading chart… | ||||||||
Machine statistics
| Metric | avg | p0.1 | p1 | p50 | p99 | p99.9 | min | max |
|---|---|---|---|---|---|---|---|---|
| 23.51 | 18.25 | 18.85 | 23.04 | 32.64 | 34.72 | 18.21 | 35.22 | |
Loading chart… | ||||||||
| 16.82 | 12.69 | 12.84 | 17.05 | 19.01 | 19.04 | 12.58 | 19.04 | |
Loading chart… | ||||||||
| 32.13 | 0.07 | 0.09 | 0.21 | 305.02 | 440.42 | 0.07 | 499.57 | |
Loading chart… | ||||||||
| 90.01 | 47.84 | 56.61 | 89.02 | 135.27 | 149.57 | 43.04 | 155.41 | |
Loading chart… | ||||||||
| 0 | 0 | 0 | 0 | 0.01 | 0.46 | 0 | 0.56 | |
Loading chart… | ||||||||
| 0.02 | 0 | 0 | 0 | 0.15 | 1.77 | 0 | 2.62 | |
Loading chart… | ||||||||
| 0.15 | 0 | 0 | 0 | 1 | 6 | 0 | 117.01 | |
Loading chart… | ||||||||
| 0.51 | 0 | 0 | 0 | 10 | 20 | 0 | 31.01 | |
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 / 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 | — |