Workload
sustained-ingest
Inserts records with unique sequential IDs into an empty database using closed-loop clients, then flushes the accepted writes.
Application operations
| API | total | avg/s | p0.1/s | p1/s | p50/s | p99/s | p99.9/s | min/s | max/s |
|---|---|---|---|---|---|---|---|---|---|
| 278.49M | 228.64K | 0 | 0 | 241.09K | 348.4K | 359.8K | 0 | 362.81K | |
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 |
|---|---|---|---|---|---|---|---|---|---|
| 108.93 | 91.58 | 0 | 0 | 96.57 | 139.55 | 144.12 | 0 | 145.32 | |
Loading chart… | |||||||||
Application latency
| API | avg ms | p0.1 | p1 | p50 | p99 | p99.9 | min | max |
|---|---|---|---|---|---|---|---|---|
| 0.27 | 0 | 0.16 | 0.22 | 0.66 | 1.75 | 0 | 6,238.21 | |
Loading chart… | ||||||||
| 16,916.48 | 16,924.67 | 16,924.67 | 16,924.67 | 16,924.67 | 16,924.67 | 16,908.29 | 16,924.67 | |
Loading chart… | ||||||||
Time from when a write returns until SlateDB first reports its sequence durable. | 14,739.03 | 729.09 | 878.59 | 15,466.5 | 25,952.26 | 28,000.26 | 621.57 | 30,162.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 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 256.9K | 210.91 | 2 | 4 | 236 | 674.62 | 748.16 | 1 | 755.84 | $0.1028 | $218.67 | |
Loading chart… | |||||||||||
| 8.08K | 6.63 | 1 | 2 | 6 | 17 | 25 | 1 | 32 | $0.0404 | $85.93 | |
Loading chart… | |||||||||||
| 61.8K | 50.73 | 0 | 0 | 51 | 135.05 | 145.1 | 0 | 148.99 | $0.3090 | $657.51 | |
Loading chart… | |||||||||||
| 370 | 0.3 | 0 | 0 | 0 | 5 | 6.01 | 0 | 7 | $0.000148 | $0.3149 | |
Loading chart… | |||||||||||
| 4.08K | 3.35 | 0 | 0 | 0 | 32.01 | 33.02 | 0 | 34 | $0.00 | $0.00 | |
Loading chart… | |||||||||||
| 8.22K | 6.75 | 0 | 0 | 7 | 20.01 | 26 | 0 | 28 | $0.0411 | $87.48 | |
Loading chart… | |||||||||||
Object-store throughput
| Method | total GiB | avg MiB/s | p0.1 | p1 | p50 | p99 | p99.9 | min | max |
|---|---|---|---|---|---|---|---|---|---|
| 421.08 | 353.99 | 0 | 0.01 | 402.85 | 1,230.6 | 1,357.62 | 0 | 1,358.96 | |
Loading chart… | |||||||||
| 1.81 | 1.52 | 0.01 | 0.04 | 1.34 | 4.2 | 5.07 | 0.01 | 5.26 | |
Loading chart… | |||||||||
| 533.36 | 448.39 | 0 | 0 | 449.91 | 1,276.03 | 1,451.78 | 0 | 1,468.36 | |
Loading chart… | |||||||||
| 0 | 0 | 0 | 0 | 0 | 0.01 | 0.01 | 0 | 0.01 | |
Loading chart… | |||||||||
| 0.01 | 0.01 | 0 | 0 | 0.01 | 0.03 | 0.04 | 0 | 0.04 | |
Loading chart… | |||||||||
Process statistics
| Metric | avg | p0.1 | p1 | p50 | p99 | p99.9 | min | max |
|---|---|---|---|---|---|---|---|---|
| 7.49 | 0.02 | 0.05 | 7.83 | 14.82 | 15.61 | 0.01 | 15.62 | |
Loading chart… | ||||||||
| 19.57 | 1.02 | 3.53 | 20.52 | 22.58 | 22.64 | 0.54 | 22.7 | |
Loading chart… | ||||||||
Machine statistics
| Metric | avg | p0.1 | p1 | p50 | p99 | p99.9 | min | max |
|---|---|---|---|---|---|---|---|---|
| 46.18 | 0.25 | 0.5 | 48.26 | 91.76 | 97.47 | 0.25 | 97.86 | |
Loading chart… | ||||||||
| 20.88 | 2.19 | 5.03 | 21.85 | 23.91 | 24.01 | 1.71 | 24.02 | |
Loading chart… | ||||||||
| 363.95 | 0.1 | 0.19 | 410.59 | 1,265.75 | 1,392.24 | 0.06 | 1,397.26 | |
Loading chart… | ||||||||
| 461.4 | 0.01 | 0.01 | 453.48 | 1,305.39 | 1,492.16 | 0.01 | 1,511.83 | |
Loading chart… | ||||||||
| 0 | 0 | 0 | 0 | 0.12 | 0.46 | 0 | 0.71 | |
Loading chart… | ||||||||
| 0.74 | 0 | 0 | 0 | 44 | 48.03 | 0 | 49.69 | |
Loading chart… | ||||||||
| 0.17 | 0 | 0 | 0 | 1 | 16 | 0 | 117 | |
Loading chart… | ||||||||
| 3.68 | 0 | 0 | 0 | 176 | 235.02 | 0 | 374.79 | |
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 | sustained-ingest |
| task / clients | 64 |
| task / warmup ms | 0 ms |
| task / measurement ms | 1,200,000 ms |
| task / initial state | empty |
| task / key selection | unique-sequential |
| task / operation mix / put | 1 |
| 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 | No |
| 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 | — |