Bench run: dcompact / 31800981467
← plain home |
← dcompact
generated (UTC): 2026-08-14T15:45:19.774666+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.0GiB | 491.0MiB | 3.7GiB | 3.7GiB | 0.81x | 0.13x |
| fillseq | 4.7GiB | 1.1GiB | 3.2GiB | 3.2GiB | 1.46x | 0.35x |
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 | 797.8MiB | 918.5MiB | 4.1GiB | 4.2GiB | 0.19x | 0.22x |
| fillseq | 513.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/56.5s | 1/83.3s | 1/41.5s | 1/48.6s | 1.47x | 0.73x | 0.86x | 0.50x | 0.58x |
| fillrandom | 240105 | 243829 | 243367 | 228440 | 0.98x | 0.99x | 1.05x | 1.00x | 1.07x |
| readrandom | 2452264 | 938930 | 153397 | 156524 | 2.61x | 15.99x | 15.67x | 6.12x | 6.00x |
| readseq | 10519508 | 7635276 | 4860552 | 3632757 | 1.38x | 1.37x | 1.83x | 0.99x | 1.33x |
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.2s | 1/133.5s | 1/40.1s | 1/41.4s | 1.46x | 0.44x | 0.45x | 0.30x | 0.31x |
| fillseq | 557558 | 555175 | 916032 | 893271 | 1.00x | 0.61x | 0.62x | 0.61x | 0.62x |
| readrandom | 2898861 | 708377 | 144390 | 157427 | 4.09x | 20.08x | 18.41x | 4.91x | 4.50x |
| readseq | 11767595 | 10069490 | 4977776 | 3748111 | 1.17x | 2.36x | 3.14x | 2.02x | 2.69x |
Per-engine details
ToplingDB zipkeyonly
db_bench (fillrandom+compact+readseq/readrandom)
| benchmark | micros/op | ops/sec | seconds | operations | extra |
| fillrandom | 4.164833 | 240105 | 416.483 | 100000000 | 13.3 MB/s |
| compact | 56513570.000000 | 0 | 56.514 | 1 | |
| readseq | 0.094962 | 10530467 | 9.496 | 100000000 | 582.5 MB/s |
| readseq | 0.095134 | 10511465 | 9.513 | 100000000 | 581.4 MB/s |
| readseq | 0.095061 | 10519508 | 9.506 | 100000000 | 581.9 MB/s |
| readrandom | 0.407786 | 2452264 | 40.779 | 100000000 | 85.7 MB/s (63210566 of 100000000 found) |
db_bench (fillseq suite)
| benchmark | micros/op | ops/sec | seconds | operations | extra |
| fillseq | 1.793534 | 557558 | 179.353 | 100000000 | 30.8 MB/s |
| compact | 91226177.000000 | 0 | 91.226 | 1 | |
| readseq | 0.085810 | 11653616 | 8.581 | 100000000 | 644.6 MB/s |
| readseq | 0.084241 | 11870573 | 8.424 | 100000000 | 656.6 MB/s |
| readseq | 0.084979 | 11767595 | 8.498 | 100000000 | 650.9 MB/s |
| readrandom | 0.344963 | 2898861 | 34.496 | 100000000 | 160.3 MB/s (100000000 of 100000000 found) |
ToplingDB zipkeyvalue
db_bench (fillrandom+compact+readseq/readrandom)
| benchmark | micros/op | ops/sec | seconds | operations | extra |
| fillrandom | 4.101229 | 243829 | 410.123 | 100000000 | 13.5 MB/s |
| compact | 83324375.000000 | 0 | 83.324 | 1 | |
| readseq | 0.123100 | 8123433 | 12.310 | 100000000 | 449.3 MB/s |
| readseq | 0.122725 | 8148303 | 12.272 | 100000000 | 450.7 MB/s |
| readseq | 0.130970 | 7635276 | 13.097 | 100000000 | 422.3 MB/s |
| readrandom | 1.065041 | 938930 | 106.504 | 100000000 | 32.8 MB/s (63213056 of 100000000 found) |
db_bench (fillseq suite)
| benchmark | micros/op | ops/sec | seconds | operations | extra |
| fillseq | 1.801234 | 555175 | 180.123 | 100000000 | 30.7 MB/s |
| compact | 133527951.000000 | 0 | 133.528 | 1 | |
| readseq | 0.101127 | 9888548 | 10.113 | 100000000 | 547.0 MB/s |
| readseq | 0.100592 | 9941160 | 10.059 | 100000000 | 549.9 MB/s |
| readseq | 0.099310 | 10069490 | 9.931 | 100000000 | 557.0 MB/s |
| readrandom | 1.411677 | 708377 | 141.168 | 100000000 | 39.2 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.109 | 243367 | 410.902 | 100000000 | 13.5 MB/s |
| compact | 41481893.000 | 0 | 41.482 | 1 | |
| readseq | 0.293 | 3414927 | 18.511 | 63212598 | 188.9 MB/s |
| readseq | 0.207 | 4831465 | 13.084 | 63212598 | 267.2 MB/s |
| readseq | 0.206 | 4860552 | 13.005 | 63212598 | 268.9 MB/s |
| readrandom | 6.519 | 153397 | 651.901 | 100000000 | 5.4 MB/s (63217497 of 100000000 found) |
db_bench (fillseq suite)
| benchmark | micros/op | ops/sec | seconds | operations | extra |
| fillseq | 1.092 | 916032 | 109.166 | 100000000 | 50.7 MB/s |
| compact | 40107550.000 | 0 | 40.108 | 1 | |
| readseq | 0.347 | 2884557 | 34.667 | 100000000 | 159.6 MB/s |
| readseq | 0.201 | 4967711 | 20.130 | 100000000 | 274.8 MB/s |
| readseq | 0.201 | 4977776 | 20.089 | 100000000 | 275.3 MB/s |
| readrandom | 6.926 | 144390 | 692.568 | 100000000 | 8.0 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.377 | 228440 | 437.750 | 100000000 | 12.6 MB/s |
| compact | 48561958.000 | 0 | 48.562 | 1 | |
| readseq | 0.401 | 2496428 | 25.320 | 63209607 | 138.1 MB/s |
| readseq | 0.279 | 3589884 | 17.608 | 63209607 | 198.6 MB/s |
| readseq | 0.275 | 3632757 | 17.400 | 63209607 | 200.9 MB/s |
| readrandom | 6.389 | 156524 | 638.876 | 100000000 | 5.5 MB/s (63203829 of 100000000 found) |
db_bench (fillseq suite)
| benchmark | micros/op | ops/sec | seconds | operations | extra |
| fillseq | 1.119 | 893271 | 111.948 | 100000000 | 49.4 MB/s |
| compact | 41423414.000 | 0 | 41.423 | 1 | |
| readseq | 0.417 | 2399382 | 41.677 | 100000000 | 132.7 MB/s |
| readseq | 0.267 | 3746976 | 26.688 | 100000000 | 207.3 MB/s |
| readseq | 0.267 | 3748111 | 26.680 | 100000000 | 207.3 MB/s |
| readrandom | 6.352 | 157427 | 635.213 | 100000000 | 8.7 MB/s (100000000 of 100000000 found) |