Bench run: dcompact / 31298143542
← plain home |
← dcompact
generated (UTC): 2026-08-09T09:29:35.567342+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-1020-azure |
| CPU | AMD EPYC 9V74 80-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 | 494.2MiB | 3.7GiB | 3.7GiB | 0.81x | 0.13x |
| fillseq | 4.7GiB | 1.1GiB | 3.2GiB | 3.2GiB | 1.45x | 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 | 788.9MiB | 852.2MiB | 4.1GiB | 4.2GiB | 0.19x | 0.20x |
| fillseq | 513.3MiB | 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. Colored bands show benchmark segments (start time from db_bench output).
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/53.2s | 1/79.4s | 1/49.8s | 1/42.3s | 1.49x | 0.94x | 0.80x | 0.63x | 0.53x |
| fillrandom | 243251 | 242659 | 218511 | 215282 | 1.00x | 1.11x | 1.13x | 1.11x | 1.13x |
| readrandom | 1805200 | 732967 | 146945 | 138751 | 2.46x | 12.28x | 13.01x | 4.99x | 5.28x |
| readseq | 11375101 | 8347565 | 4509772 | 3793923 | 1.36x | 1.59x | 1.90x | 1.17x | 1.39x |
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/83.7s | 1/133.7s | 1/39.8s | 1/37.1s | 1.60x | 0.48x | 0.44x | 0.30x | 0.28x |
| fillseq | 581853 | 574490 | 954671 | 922932 | 1.01x | 0.61x | 0.63x | 0.60x | 0.62x |
| readrandom | 2795221 | 581669 | 140829 | 136930 | 4.81x | 19.85x | 20.41x | 4.13x | 4.25x |
| readseq | 13153138 | 9932354 | 4568946 | 3873774 | 1.32x | 2.88x | 3.40x | 2.17x | 2.56x |
Per-engine details
ToplingDB zipkeyonly
db_bench (fillrandom+compact+readseq/readrandom)
| benchmark | micros/op | ops/sec | seconds | operations | extra |
| fillrandom | 4.110974 | 243251 | 411.098 | 100000000 | 13.5 MB/s |
| compact | 53234221.000000 | 0 | 53.234 | 1 | |
| readseq | 0.087752 | 11395723 | 8.775 | 100000000 | 630.3 MB/s |
| readseq | 0.088181 | 11340277 | 8.818 | 100000000 | 627.3 MB/s |
| readseq | 0.087911 | 11375101 | 8.791 | 100000000 | 629.2 MB/s |
| readrandom | 0.553954 | 1805200 | 55.395 | 100000000 | 63.1 MB/s (63205377 of 100000000 found) |
db_bench (fillseq suite)
| benchmark | micros/op | ops/sec | seconds | operations | extra |
| fillseq | 1.718646 | 581853 | 171.865 | 100000000 | 32.2 MB/s |
| compact | 83696267.000000 | 0 | 83.696 | 1 | |
| readseq | 0.076121 | 13136989 | 7.612 | 100000000 | 726.6 MB/s |
| readseq | 0.075070 | 13320804 | 7.507 | 100000000 | 736.8 MB/s |
| readseq | 0.076027 | 13153138 | 7.603 | 100000000 | 727.5 MB/s |
| readrandom | 0.357753 | 2795221 | 35.775 | 100000000 | 154.6 MB/s (100000000 of 100000000 found) |
ToplingDB zipkeyvalue
db_bench (fillrandom+compact+readseq/readrandom)
| benchmark | micros/op | ops/sec | seconds | operations | extra |
| fillrandom | 4.121005 | 242659 | 412.101 | 100000000 | 13.4 MB/s |
| compact | 79417715.000000 | 0 | 79.418 | 1 | |
| readseq | 0.121148 | 8254361 | 12.115 | 100000000 | 456.6 MB/s |
| readseq | 0.119826 | 8345393 | 11.983 | 100000000 | 461.6 MB/s |
| readseq | 0.119795 | 8347565 | 11.980 | 100000000 | 461.7 MB/s |
| readrandom | 1.364317 | 732967 | 136.432 | 100000000 | 25.6 MB/s (63206447 of 100000000 found) |
db_bench (fillseq suite)
| benchmark | micros/op | ops/sec | seconds | operations | extra |
| fillseq | 1.740671 | 574490 | 174.067 | 100000000 | 31.8 MB/s |
| compact | 133732789.000000 | 0 | 133.733 | 1 | |
| readseq | 0.103022 | 9706662 | 10.302 | 100000000 | 536.9 MB/s |
| readseq | 0.100957 | 9905136 | 10.096 | 100000000 | 547.9 MB/s |
| readseq | 0.100681 | 9932354 | 10.068 | 100000000 | 549.4 MB/s |
| readrandom | 1.719190 | 581669 | 171.919 | 100000000 | 32.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.576 | 218511 | 457.641 | 100000000 | 12.1 MB/s |
| compact | 49783636.000 | 0 | 49.784 | 1 | |
| readseq | 0.325 | 3080731 | 20.518 | 63209518 | 170.4 MB/s |
| readseq | 0.221 | 4519915 | 13.985 | 63209518 | 250.0 MB/s |
| readseq | 0.222 | 4509772 | 14.016 | 63209518 | 249.4 MB/s |
| readrandom | 6.805 | 146945 | 680.523 | 100000000 | 5.1 MB/s (63211078 of 100000000 found) |
db_bench (fillseq suite)
| benchmark | micros/op | ops/sec | seconds | operations | extra |
| fillseq | 1.047 | 954671 | 104.748 | 100000000 | 52.8 MB/s |
| compact | 39795711.000 | 0 | 39.796 | 1 | |
| readseq | 0.381 | 2624067 | 38.109 | 100000000 | 145.1 MB/s |
| readseq | 0.222 | 4499214 | 22.226 | 100000000 | 248.9 MB/s |
| readseq | 0.219 | 4568946 | 21.887 | 100000000 | 252.7 MB/s |
| readrandom | 7.101 | 140829 | 710.077 | 100000000 | 7.8 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.645 | 215282 | 464.506 | 100000000 | 11.9 MB/s |
| compact | 42323790.000 | 0 | 42.324 | 1 | |
| readseq | 0.386 | 2593059 | 24.378 | 63213751 | 143.4 MB/s |
| readseq | 0.261 | 3824398 | 16.529 | 63213751 | 211.5 MB/s |
| readseq | 0.264 | 3793923 | 16.662 | 63213751 | 209.9 MB/s |
| readrandom | 7.207 | 138751 | 720.713 | 100000000 | 4.9 MB/s (63215063 of 100000000 found) |
db_bench (fillseq suite)
| benchmark | micros/op | ops/sec | seconds | operations | extra |
| fillseq | 1.084 | 922932 | 108.350 | 100000000 | 51.1 MB/s |
| compact | 37117514.000 | 0 | 37.118 | 1 | |
| readseq | 0.427 | 2343664 | 42.668 | 100000000 | 129.6 MB/s |
| readseq | 0.259 | 3864371 | 25.877 | 100000000 | 213.8 MB/s |
| readseq | 0.258 | 3873774 | 25.815 | 100000000 | 214.3 MB/s |
| readrandom | 7.303 | 136930 | 730.300 | 100000000 | 7.6 MB/s (100000000 of 100000000 found) |