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_workerdcompact_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

OSUbuntu 24.04.4 LTS
Kernel6.17.0-1022-azure
CPUAMD EPYC 7763 64-Core Processor
Logical CPUs4
Memory15.6GiB
/dev/shm7.8GiB
RocksDB block cache7.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.

workloadToplingDB zipkeyonlyToplingDB zipkeyvalueRocksDB v8.10RocksDB master (5fe22535)zipkeyonly / v8.10 (space)zipkeyvalue / v8.10 (space)
fillrandom3.1GiB509.4MiB3.7GiB3.7GiB0.82x0.13x
fillseq4.7GiB1.2GiB3.2GiB3.2GiB1.45x0.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.

workloadToplingDB zipkeyonlyToplingDB zipkeyvalueRocksDB v8.10RocksDB master (5fe22535)zipkeyonly / v8.10 (RSS)zipkeyvalue / v8.10 (RSS)
fillrandom750.6MiB750.4MiB4.1GiB4.2GiB0.18x0.18x
fillseq510.2MiB1.2GiB6.4GiB6.5GiB0.08x0.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.

startup 2.0 fillrandom 426 flush 0.3 compact 61 readseq×3 29 readrandom 53 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500 6000 6500 7000 MiB 0 50 100 150 200 250 300 350 400 450 500 550 600 Time (s) ToplingDB zipkeyonly — fillrandom suite RAM rss shared anony pagecache anony+pc
startup 2.0 fillseq 181 flush 0.0 compact 91 readseq×3 26 readrandom 34 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500 6000 MiB 0 50 100 150 200 250 300 350 400 Time (s) ToplingDB zipkeyonly — fillseq suite RAM rss shared anony pagecache anony+pc
startup 2.0 fillrandom 426 flush 1.5 compact 86 readseq×3 37 readrandom 130 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500 6000 6500 7000 MiB 0 50 100 150 200 250 300 350 400 450 500 550 600 650 700 Time (s) ToplingDB zipkeyvalue — fillrandom suite RAM rss shared anony pagecache anony+pc
startup 2.0 fillseq 182 flush 0.0 compact 133 readseq×3 31 readrandom 160 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500 6000 MiB 0 50 100 150 200 250 300 350 400 450 500 550 600 Time (s) ToplingDB zipkeyvalue — fillseq suite RAM rss shared anony pagecache anony+pc
fillrandom 436 compact 48 readrandom 668 flush 0.7 readseq×3 45 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500 6000 6500 7000 7500 8000 MiB 0 500 1000 1500 2000 Time (s) RocksDB v8.10 — fillrandom suite RAM rss shared anony pagecache anony+pc
fillseq 110 compact 39 readseq×3 75 readrandom 686 flush 0.4 0 5000 10000 MiB 0 500 1000 Time (s) RocksDB v8.10 — fillseq suite RAM rss shared anony pagecache anony+pc
fillrandom 432 readseq×3 58 readrandom 640 flush 0.7 compact 47 0 5000 10000 MiB 0 500 1000 1500 2000 Time (s) RocksDB master (5fe22535) — fillrandom suite RAM rss shared anony pagecache anony+pc
fillseq 113 compact 41 readseq×3 96 readrandom 649 flush 0.4 0 5000 10000 MiB 0 500 1000 Time (s) RocksDB master (5fe22535) — fillseq suite RAM rss shared anony pagecache anony+pc

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.

benchmarkToplingDB zipkeyonly ops/secToplingDB zipkeyvalue ops/secRocksDB v8.10 ops/secRocksDB master (5fe22535) ops/seczipkeyvalue time / zipkeyonlyv8.10 time / zipkeyonlymaster (5fe22535) time / zipkeyonlyv8.10 time / zipkeyvaluemaster (5fe22535) time / zipkeyvalue
compact1/60.9s1/86.3s1/48.3s1/46.5s1.42x0.79x0.76x0.56x0.54x
fillrandom2344882348582293862312671.00x1.02x1.01x1.02x1.02x
readrandom18842777691111497041562792.45x12.59x12.06x5.14x4.92x
readseq104914338202958486182936700771.28x1.36x1.81x1.07x1.41x

Comparison: db_bench fillseq suite (perf)

Same as fillrandom. Watch compact / readseq / readrandom cost for minDictZip=10 vs space savings above.

benchmarkToplingDB zipkeyonly ops/secToplingDB zipkeyvalue ops/secRocksDB v8.10 ops/secRocksDB master (5fe22535) ops/seczipkeyvalue time / zipkeyonlyv8.10 time / zipkeyonlymaster (5fe22535) time / zipkeyonlyv8.10 time / zipkeyvaluemaster (5fe22535) time / zipkeyvalue
compact1/91.3s1/133.3s1/39.4s1/41.4s1.46x0.43x0.45x0.30x0.31x
fillseq5537765505199056298824281.01x0.61x0.63x0.61x0.62x
readrandom29267836258511458401541814.68x20.07x18.98x4.29x4.06x
readseq117535929970599494517337202261.18x2.38x3.16x2.02x2.68x

Per-engine details

ToplingDB zipkeyonly

db_bench (fillrandom+compact+readseq/readrandom)

benchmarkmicros/opops/secsecondsoperationsextra
fillrandom4.264604234488426.46010000000013.0 MB/s
compact60880373.000000060.8801
readseq0.095517104693569.552100000000579.1 MB/s
readseq0.095050105207859.505100000000581.9 MB/s
readseq0.095316104914339.532100000000580.3 MB/s
readrandom0.530707188427753.07110000000065.9 MB/s (63219849 of 100000000 found)

db_bench (fillseq suite)

benchmarkmicros/opops/secsecondsoperationsextra
fillseq1.805783553776180.57810000000030.6 MB/s
compact91318034.000000091.3181
readseq0.085938116362068.594100000000643.6 MB/s
readseq0.084106118896978.411100000000657.7 MB/s
readseq0.085080117535928.508100000000650.1 MB/s
readrandom0.341672292678334.167100000000161.9 MB/s (100000000 of 100000000 found)

ToplingDB zipkeyvalue

db_bench (fillrandom+compact+readseq/readrandom)

benchmarkmicros/opops/secsecondsoperationsextra
fillrandom4.257882234858425.78810000000013.0 MB/s
compact86278120.000000086.2781
readseq0.122269817866912.227100000000452.4 MB/s
readseq0.122911813594712.291100000000450.0 MB/s
readseq0.121907820295812.191100000000453.7 MB/s
readrandom1.300201769111130.02010000000026.9 MB/s (63212137 of 100000000 found)

db_bench (fillseq suite)

benchmarkmicros/opops/secsecondsoperationsextra
fillseq1.816464550519181.64610000000030.5 MB/s
compact133329463.0000000133.3291
readseq0.103071970200110.307100000000536.6 MB/s
readseq0.101638983884310.164100000000544.2 MB/s
readseq0.100295997059910.029100000000551.5 MB/s
readrandom1.597822625851159.78210000000034.6 MB/s (100000000 of 100000000 found)

RocksDB v8.10

db_bench (fillrandom+compact+readseq/readrandom)

benchmarkmicros/opops/secsecondsoperationsextra
fillrandom4.359229386435.94510000000012.7 MB/s
compact48275663.000048.2761
readseq0.295339210318.63463210157187.6 MB/s
readseq0.206486516512.99263210157269.1 MB/s
readseq0.206486182913.00163210157268.9 MB/s
readrandom6.680149704667.9841000000005.2 MB/s (63200764 of 100000000 found)

db_bench (fillseq suite)

benchmarkmicros/opops/secsecondsoperationsextra
fillseq1.103905629110.42010000000050.1 MB/s
compact39430277.000039.4301
readseq0.348287631634.767100000000159.1 MB/s
readseq0.204490199220.400100000000271.1 MB/s
readseq0.202494517320.222100000000273.5 MB/s
readrandom6.857145840685.6791000000008.1 MB/s (100000000 of 100000000 found)

RocksDB master (5fe22535)

db_bench (fillrandom+compact+readseq/readrandom)

benchmarkmicros/opops/secsecondsoperationsextra
fillrandom4.324231267432.40010000000012.8 MB/s
compact46528857.000046.5291
readseq0.374267696623.61363210338148.1 MB/s
readseq0.272368046617.17563210338203.6 MB/s
readseq0.272367007717.22363210338203.0 MB/s
readrandom6.399156279639.8801000000005.5 MB/s (63214509 of 100000000 found)

db_bench (fillseq suite)

benchmarkmicros/opops/secsecondsoperationsextra
fillseq1.132882428113.32410000000048.8 MB/s
compact41425844.000041.4261
readseq0.421237719542.066100000000131.5 MB/s
readseq0.267374405026.709100000000207.1 MB/s
readseq0.269372022626.880100000000205.8 MB/s
readrandom6.486154181648.5881000000008.5 MB/s (100000000 of 100000000 found)