Bench run: dcompact / 31787128815
← plain home |
← dcompact
generated (UTC): 2026-08-14T12:01:06.157643+00:00
ToplingDB zipkeyonly db_bench | ToplingDB zipkeyvalue db_bench | RocksDB v8.10 db_bench | RocksDB master (5fe22535) db_bench | DB INFO LOGs (Actions artifact) — ToplingDB zipkeyonly LOG-fillrandom, ToplingDB zipkeyonly LOG-fillseq, ToplingDB zipkeyvalue LOG-fillrandom, ToplingDB zipkeyvalue LOG-fillseq, RocksDB v8.10 LOG-fillrandom, RocksDB v8.10 LOG-fillseq, RocksDB master (5fe22535) LOG-fillrandom, RocksDB master (5fe22535) LOG-fillseq
ToplingDB bench yaml (runtime graft): ToplingDB zipkeyonly db_bench-fillrandom.yaml | ToplingDB zipkeyonly db_bench-fillseq.yaml | ToplingDB zipkeyvalue db_bench-fillrandom.yaml | ToplingDB zipkeyvalue db_bench-fillseq.yaml
Bench configuration (dcompact)
Write-side db_bench CPU quota: 50%
(from runner_env.txt cpu_quota_write).
Topling compact: dcompact_worker —
dcompact_worker runs outside the write cgroup and uses remaining CPU cores.
RocksDB compact: compaction_service_spool —
CompactionService spool + out-of-cgroup broker/worker on remaining cores.
Runner hardware/software
| OS | Ubuntu 24.04.4 LTS |
| Kernel | 6.17.0-1022-azure |
| CPU | AMD EPYC 7763 64-Core Processor |
| Logical CPUs | 4 |
| Memory | 15.6GiB |
| /dev/shm | 7.8GiB |
| RocksDB block cache | 7.8GiB |
On-disk DB size (3.7GiB) ≤ block cache (7.8GiB) — cache can hold the entire dataset. So this benchmark mainly shows CPU and memory cost.
/dev/shm usage (disk space; after db_bench)
Allocated disk usage (IEC blocks). RocksDB uses default Snappy compression. Space ratio = engine / v8.10; <1 = less space than RocksDB, >1 = larger.
| workload | ToplingDB zipkeyonly | ToplingDB zipkeyvalue | RocksDB v8.10 | RocksDB master (5fe22535) | zipkeyonly / v8.10 (space) | zipkeyvalue / v8.10 (space) |
| fillrandom | 3.1GiB | 509.4MiB | 3.7GiB | 3.7GiB | 0.82x | 0.13x |
| fillseq | 4.7GiB | 1.2GiB | 3.2GiB | 3.2GiB | 1.45x | 0.36x |
Peak RSS (RAM; during db_bench)
RSS is Resident Set Size. RocksDB block cache = half physical memory (7.8GiB). Ratio = engine / v8.10; <1 = less RSS, >1 = more RSS.
| workload | ToplingDB zipkeyonly | ToplingDB zipkeyvalue | RocksDB v8.10 | RocksDB master (5fe22535) | zipkeyonly / v8.10 (RSS) | zipkeyvalue / v8.10 (RSS) |
| fillrandom | 750.6MiB | 750.4MiB | 4.1GiB | 4.2GiB | 0.18x | 0.18x |
| fillseq | 510.2MiB | 1.2GiB | 6.4GiB | 6.5GiB | 0.08x | 0.19x |
RAM usage over time
Sampled once per second from /proc/statm plus open-file page cache. The bar below each plot shows stage name + duration (consecutive repeats merge, e.g. readseq×3); colored bands mark the same intervals. Stage names may overflow into a neighbor cell; a label under the bar is used only when names would overlap.
Comparison: db_bench fillrandom suite (perf)
Benchmarks: fillrandom, flush, compact, readseq×3, readrandom. RocksDB uses default Snappy compression. compact row shows operations/seconds. RocksDB time / zipkey*: >1 = that zipkey* engine faster. Values show ops/sec.
| benchmark | ToplingDB zipkeyonly ops/sec | ToplingDB zipkeyvalue ops/sec | RocksDB v8.10 ops/sec | RocksDB master (5fe22535) ops/sec | zipkeyvalue time / zipkeyonly | v8.10 time / zipkeyonly | master (5fe22535) time / zipkeyonly | v8.10 time / zipkeyvalue | master (5fe22535) time / zipkeyvalue |
| compact | 1/60.9s | 1/86.3s | 1/48.3s | 1/46.5s | 1.42x | 0.79x | 0.76x | 0.56x | 0.54x |
| fillrandom | 234488 | 234858 | 229386 | 231267 | 1.00x | 1.02x | 1.01x | 1.02x | 1.02x |
| readrandom | 1884277 | 769111 | 149704 | 156279 | 2.45x | 12.59x | 12.06x | 5.14x | 4.92x |
| readseq | 10491433 | 8202958 | 4861829 | 3670077 | 1.28x | 1.36x | 1.81x | 1.07x | 1.41x |
Comparison: db_bench fillseq suite (perf)
Same as fillrandom. Watch compact / readseq / readrandom cost for minDictZip=10 vs space savings above.
| benchmark | ToplingDB zipkeyonly ops/sec | ToplingDB zipkeyvalue ops/sec | RocksDB v8.10 ops/sec | RocksDB master (5fe22535) ops/sec | zipkeyvalue time / zipkeyonly | v8.10 time / zipkeyonly | master (5fe22535) time / zipkeyonly | v8.10 time / zipkeyvalue | master (5fe22535) time / zipkeyvalue |
| compact | 1/91.3s | 1/133.3s | 1/39.4s | 1/41.4s | 1.46x | 0.43x | 0.45x | 0.30x | 0.31x |
| fillseq | 553776 | 550519 | 905629 | 882428 | 1.01x | 0.61x | 0.63x | 0.61x | 0.62x |
| readrandom | 2926783 | 625851 | 145840 | 154181 | 4.68x | 20.07x | 18.98x | 4.29x | 4.06x |
| readseq | 11753592 | 9970599 | 4945173 | 3720226 | 1.18x | 2.38x | 3.16x | 2.02x | 2.68x |
Per-engine details
ToplingDB zipkeyonly
db_bench (fillrandom+compact+readseq/readrandom)
| benchmark | micros/op | ops/sec | seconds | operations | extra |
| fillrandom | 4.264604 | 234488 | 426.460 | 100000000 | 13.0 MB/s |
| compact | 60880373.000000 | 0 | 60.880 | 1 | |
| readseq | 0.095517 | 10469356 | 9.552 | 100000000 | 579.1 MB/s |
| readseq | 0.095050 | 10520785 | 9.505 | 100000000 | 581.9 MB/s |
| readseq | 0.095316 | 10491433 | 9.532 | 100000000 | 580.3 MB/s |
| readrandom | 0.530707 | 1884277 | 53.071 | 100000000 | 65.9 MB/s (63219849 of 100000000 found) |
db_bench (fillseq suite)
| benchmark | micros/op | ops/sec | seconds | operations | extra |
| fillseq | 1.805783 | 553776 | 180.578 | 100000000 | 30.6 MB/s |
| compact | 91318034.000000 | 0 | 91.318 | 1 | |
| readseq | 0.085938 | 11636206 | 8.594 | 100000000 | 643.6 MB/s |
| readseq | 0.084106 | 11889697 | 8.411 | 100000000 | 657.7 MB/s |
| readseq | 0.085080 | 11753592 | 8.508 | 100000000 | 650.1 MB/s |
| readrandom | 0.341672 | 2926783 | 34.167 | 100000000 | 161.9 MB/s (100000000 of 100000000 found) |
ToplingDB zipkeyvalue
db_bench (fillrandom+compact+readseq/readrandom)
| benchmark | micros/op | ops/sec | seconds | operations | extra |
| fillrandom | 4.257882 | 234858 | 425.788 | 100000000 | 13.0 MB/s |
| compact | 86278120.000000 | 0 | 86.278 | 1 | |
| readseq | 0.122269 | 8178669 | 12.227 | 100000000 | 452.4 MB/s |
| readseq | 0.122911 | 8135947 | 12.291 | 100000000 | 450.0 MB/s |
| readseq | 0.121907 | 8202958 | 12.191 | 100000000 | 453.7 MB/s |
| readrandom | 1.300201 | 769111 | 130.020 | 100000000 | 26.9 MB/s (63212137 of 100000000 found) |
db_bench (fillseq suite)
| benchmark | micros/op | ops/sec | seconds | operations | extra |
| fillseq | 1.816464 | 550519 | 181.646 | 100000000 | 30.5 MB/s |
| compact | 133329463.000000 | 0 | 133.329 | 1 | |
| readseq | 0.103071 | 9702001 | 10.307 | 100000000 | 536.6 MB/s |
| readseq | 0.101638 | 9838843 | 10.164 | 100000000 | 544.2 MB/s |
| readseq | 0.100295 | 9970599 | 10.029 | 100000000 | 551.5 MB/s |
| readrandom | 1.597822 | 625851 | 159.782 | 100000000 | 34.6 MB/s (100000000 of 100000000 found) |
RocksDB v8.10
db_bench (fillrandom+compact+readseq/readrandom)
| benchmark | micros/op | ops/sec | seconds | operations | extra |
| fillrandom | 4.359 | 229386 | 435.945 | 100000000 | 12.7 MB/s |
| compact | 48275663.000 | 0 | 48.276 | 1 | |
| readseq | 0.295 | 3392103 | 18.634 | 63210157 | 187.6 MB/s |
| readseq | 0.206 | 4865165 | 12.992 | 63210157 | 269.1 MB/s |
| readseq | 0.206 | 4861829 | 13.001 | 63210157 | 268.9 MB/s |
| readrandom | 6.680 | 149704 | 667.984 | 100000000 | 5.2 MB/s (63200764 of 100000000 found) |
db_bench (fillseq suite)
| benchmark | micros/op | ops/sec | seconds | operations | extra |
| fillseq | 1.103 | 905629 | 110.420 | 100000000 | 50.1 MB/s |
| compact | 39430277.000 | 0 | 39.430 | 1 | |
| readseq | 0.348 | 2876316 | 34.767 | 100000000 | 159.1 MB/s |
| readseq | 0.204 | 4901992 | 20.400 | 100000000 | 271.1 MB/s |
| readseq | 0.202 | 4945173 | 20.222 | 100000000 | 273.5 MB/s |
| readrandom | 6.857 | 145840 | 685.679 | 100000000 | 8.1 MB/s (100000000 of 100000000 found) |
RocksDB master (5fe22535)
db_bench (fillrandom+compact+readseq/readrandom)
| benchmark | micros/op | ops/sec | seconds | operations | extra |
| fillrandom | 4.324 | 231267 | 432.400 | 100000000 | 12.8 MB/s |
| compact | 46528857.000 | 0 | 46.529 | 1 | |
| readseq | 0.374 | 2676966 | 23.613 | 63210338 | 148.1 MB/s |
| readseq | 0.272 | 3680466 | 17.175 | 63210338 | 203.6 MB/s |
| readseq | 0.272 | 3670077 | 17.223 | 63210338 | 203.0 MB/s |
| readrandom | 6.399 | 156279 | 639.880 | 100000000 | 5.5 MB/s (63214509 of 100000000 found) |
db_bench (fillseq suite)
| benchmark | micros/op | ops/sec | seconds | operations | extra |
| fillseq | 1.132 | 882428 | 113.324 | 100000000 | 48.8 MB/s |
| compact | 41425844.000 | 0 | 41.426 | 1 | |
| readseq | 0.421 | 2377195 | 42.066 | 100000000 | 131.5 MB/s |
| readseq | 0.267 | 3744050 | 26.709 | 100000000 | 207.1 MB/s |
| readseq | 0.269 | 3720226 | 26.880 | 100000000 | 205.8 MB/s |
| readrandom | 6.486 | 154181 | 648.588 | 100000000 | 8.5 MB/s (100000000 of 100000000 found) |