Bench run: plain / 31218150702

← plain home | dcompact →

generated (UTC): 2026-08-07T22:21:52.334573+00:00

ToplingDB zipkeyonly db_bench | ToplingDB zipkeyvalue db_bench | RocksDB v8.10 db_bench | RocksDB master (5fe22535) db_bench | DB INFO LOGs + bench yamls (Actions artifact) — ToplingDB zipkeyonly LOG-fillrandom, ToplingDB zipkeyonly LOG-fillrandom-omit, ToplingDB zipkeyonly LOG-fillseq, ToplingDB zipkeyonly LOG-fillseq-omit, ToplingDB zipkeyonly db_bench-fillrandom.yaml, ToplingDB zipkeyonly db_bench-fillseq.yaml, ToplingDB zipkeyvalue LOG-fillrandom, ToplingDB zipkeyvalue LOG-fillrandom-omit, ToplingDB zipkeyvalue LOG-fillseq, ToplingDB zipkeyvalue LOG-fillseq-omit, ToplingDB zipkeyvalue db_bench-fillrandom.yaml, ToplingDB zipkeyvalue db_bench-fillseq.yaml, 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

Runner hardware/software

OSUbuntu 24.04.4 LTS
Kernel6.17.0-1020-azure
CPUAMD EPYC 9V74 80-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.

/dev/shm usage (space; after db_bench + omit/scan, before delete)

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)Topling / v8.10 (space)zipkeyvalue / v8.10 (space)
fillrandom3.0GiB591.0MiB3.7GiB3.7GiB0.82x0.16x
fillseq4.7GiB1.2GiB3.2GiB3.2GiB1.46x0.38x

Peak RSS (memory; during db_bench)

Peak resident set size. RocksDB block cache = half physical memory (7.8GiB). Ratio = engine / v8.10; <1 = less memory, >1 = more memory. RocksDB omit columns are derived-from-main (no separate omit pass).

workloadToplingDB zipkeyonlyToplingDB zipkeyvalueRocksDB v8.10 (derived-from-main)RocksDB master (5fe22535)Topling / v8.10 (RSS)zipkeyvalue / v8.10 (RSS)
fillrandom3.0GiB2.2GiB4.1GiB4.2GiB0.74x0.55x
fillrandom-omit139.6MiB177.9MiB4.1GiBn/a0.03x0.04x
fillseq1.9GiB1.9GiB6.5GiB6.5GiB0.29x0.29x
fillseq-omit128.9MiB188.6MiB6.5GiBn/a0.02x0.03x

RSS 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).

ToplingDB zipkeyonly — fillrandom suite RSS startup fillrandom flush compact readseq readseq readseq readrandom 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500 6000 MiB 0 50 100 150 200 Time (s) rss shared anony pagecache anony+pc
ToplingDB zipkeyonly — fillseq suite RSS startup fillseq flush compact readseq readseq readseq readrandom 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500 6000 MiB 0 50 100 150 200 Time (s) rss shared anony pagecache anony+pc
ToplingDB zipkeyvalue — fillrandom suite RSS startup fillrandom flush compact readseq readseq readseq readrandom 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500 6000 MiB 0 50 100 150 200 250 300 Time (s) rss shared anony pagecache anony+pc
ToplingDB zipkeyvalue — fillseq suite RSS startup fillseq flush compact readseq readseq readseq readrandom 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500 6000 6500 7000 MiB 0 50 100 150 200 250 300 Time (s) rss shared anony pagecache anony+pc
RocksDB v8.10 — fillrandom suite RSS fillrandom flush compact readseq readseq readseq readrandom 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500 6000 6500 7000 7500 8000 MiB 0 50 100 150 200 250 300 350 400 450 500 550 600 Time (s) rss shared anony pagecache anony+pc
RocksDB v8.10 — fillseq suite RSS fillseq flush compact readseq readseq readseq readrandom 0 5000 10000 MiB 0 50 100 150 200 250 300 350 400 450 500 Time (s) rss shared anony pagecache anony+pc
RocksDB master (5fe22535) — fillrandom suite RSS fillrandom flush compact readseq readseq readseq readrandom 0 5000 10000 MiB 0 50 100 150 200 250 300 350 400 450 500 550 600 Time (s) rss shared anony pagecache anony+pc
RocksDB master (5fe22535) — fillseq suite RSS fillseq flush compact readseq readseq readseq readrandom 0 5000 10000 MiB 0 50 100 150 200 250 300 350 400 450 500 Time (s) 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 / Topling*: >1 = that Topling variant 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/47.3s1/72.9s1/60.1s1/55.2s1.54x1.27x1.17x0.82x0.76x
fillrandom101218310528727009566898230.96x1.44x1.47x1.50x1.53x
readrandom428054916513353302873409902.59x12.96x12.55x5.00x4.84x
readseq2438702616843608964388783371191.45x1.60x1.85x1.10x1.28x

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/38.3s1/121.7s1/36.0s1/35.3s3.17x0.94x0.92x0.30x0.29x
fillseq23457692353219405903739643321.00x0.58x0.59x0.58x0.59x
readrandom636697613370723207163193994.76x19.85x19.93x4.17x4.19x
readseq3027391220828473982025984020961.45x3.08x3.60x2.12x2.48x

Lazy load demo (scan; RocksDB v8.10 baseline)

Topling needs an extra omit pass: scan_omit_key/value enables lazy value load (no real value load). RocksDB has no omit API, so the baseline is readseq×3 already present in the main fill* suite (no extra pass). master omitted here (v8.10 is the stronger RocksDB baseline). Time ratio = v8.10 / Topling*: >1 = Topling* faster, <1 = Topling* slower. nextwithkey is Topling-only.

fillrandom-omit / scan

benchmarkToplingDB zipkeyonly ops/secToplingDB zipkeyvalue ops/secRocksDB v8.10 ops/secv8.10 time / Toplingv8.10 time / zipkeyvalue
nextwithkey3871473239086470
readseq366101493704916796438872.40x2.43x

fillseq-omit / scan

benchmarkToplingDB zipkeyonly ops/secToplingDB zipkeyvalue ops/secRocksDB v8.10 ops/secv8.10 time / Toplingv8.10 time / zipkeyvalue
nextwithkey5218762752040183
readseq503762095034052898202595.13x5.13x

memtablerep_bench: CSPPMemTable advantage

Focus: CSPP (ToplingDB) vs skiplist. Baseline = RocksDB v8.10 skiplist. Column "CSPP / v8.10": for throughput >1 = CSPP faster; for us/op and elapsed <1 = CSPP cheaper.

benchmarkmetricCSPP (ToplingDB)skiplist (ToplingDB)skiplist (RocksDB v8.10)CSPP / v8.10
fillrandomElapsed time37842262 us321717234 us324614498 us0.12x
fillrandomWrite throughput42.8422 MiB/s5.03935 MiB/s4.99437 MiB/s8.58x
fillrandomwrite us/op0.3784233.217173.246140.12x
readrandomElapsed time54448854 us379628462 us375333532 us0.15x
readrandomRead throughput29.7756 MiB/s4.27061 MiB/s4.31948 MiB/s6.89x
readrandomread us/op0.5444893.796283.753340.15x

Per-engine details

ToplingDB zipkeyonly

db_bench (fillrandom+compact+readseq/readrandom)

benchmarkmicros/opops/secsecondsoperationsextra
fillrandom0.987961101218398.79610000000056.0 MB/s
compact47321386.000000047.3211
readseq0.041453241238224.1451000000001334.4 MB/s
readseq0.040838244866914.0841000000001354.4 MB/s
readseq0.041005243870264.1011000000001348.9 MB/s
readrandom0.233614428054923.361100000000149.7 MB/s (63216402 of 100000000 found)

db_bench (fillseq suite)

benchmarkmicros/opops/secsecondsoperationsextra
fillseq0.426299234576942.630100000000129.8 MB/s
compact38331654.000000038.3321
readseq0.032778305077093.2781000000001687.5 MB/s
readseq0.032609306657033.2611000000001696.2 MB/s
readseq0.033031302739123.3031000000001674.5 MB/s
readrandom0.157060636697615.706100000000352.2 MB/s (100000000 of 100000000 found)

db_bench omit lazy-load (fillrandom DB)

benchmarkmicros/opops/secsecondsoperationsextra
nextwithkey0.026993370464222.699100000000282.6 MB/s
nextwithkey0.025973385008092.597100000000293.7 MB/s
nextwithkey0.025829387147322.583100000000295.4 MB/s
readseq0.026733374056062.673100000000285.4 MB/s
readseq0.027145368380972.715100000000281.1 MB/s
readseq0.027314366101492.731100000000279.3 MB/s

db_bench omit lazy-load (fillseq DB)

benchmarkmicros/opops/secsecondsoperationsextra
nextwithkey0.019189521111801.919100000000397.6 MB/s
nextwithkey0.019148522224841.915100000000398.4 MB/s
nextwithkey0.019161521876271.916100000000398.2 MB/s
readseq0.019870503272781.987100000000384.0 MB/s
readseq0.019855503639041.986100000000384.2 MB/s
readseq0.019850503762091.985100000000384.3 MB/s

memtablerep_bench (skiplist)

benchmarkmetricvalue
fillrandomNumber of threads1
fillrandomElapsed time321717234 us
fillrandomTotal bytes written1621.25 MiB
fillrandomWrite throughput5.03935 MiB/s
fillrandomwrite us/op3.21717
readrandomNumber of threads1
readrandomElapsed time379628462 us
readrandomTotal bytes read1621.25 MiB
readrandomRead throughput4.27061 MiB/s
readrandomread us/op3.79628

memtablerep_bench (cspp, ToplingDB only)

benchmarkmetricvalue
fillrandomNumber of threads1
fillrandomElapsed time37842262 us
fillrandomTotal bytes written1621.25 MiB
fillrandomWrite throughput42.8422 MiB/s
fillrandomwrite us/op0.378423
readrandomNumber of threads1
readrandomElapsed time54448854 us
readrandomTotal bytes read1621.25 MiB
readrandomRead throughput29.7756 MiB/s
readrandomread us/op0.544489

ToplingDB zipkeyvalue

db_bench (fillrandom+compact+readseq/readrandom)

benchmarkmicros/opops/secsecondsoperationsextra
fillrandom0.949782105287294.97810000000058.2 MB/s
compact72909507.000000072.9101
readseq0.058379171291745.838100000000947.5 MB/s
readseq0.057899172713155.790100000000955.3 MB/s
readseq0.059369168436085.937100000000931.7 MB/s
readrandom0.605570165133560.55710000000057.7 MB/s (63215368 of 100000000 found)

db_bench (fillseq suite)

benchmarkmicros/opops/secsecondsoperationsextra
fillseq0.424949235321942.495100000000130.2 MB/s
compact121702796.0000000121.7031
readseq0.048984204144164.8981000000001129.2 MB/s
readseq0.048110207856774.8111000000001149.7 MB/s
readseq0.048011208284734.8011000000001152.1 MB/s
readrandom0.747902133707274.79010000000074.0 MB/s (100000000 of 100000000 found)

db_bench omit lazy-load (fillrandom DB)

benchmarkmicros/opops/secsecondsoperationsextra
nextwithkey0.025824387238022.582100000000295.4 MB/s
nextwithkey0.025825387211632.583100000000295.4 MB/s
nextwithkey0.025584390864702.558100000000298.2 MB/s
readseq0.026598375960482.660100000000286.8 MB/s
readseq0.026902371703272.690100000000283.6 MB/s
readseq0.026990370491672.699100000000282.7 MB/s

db_bench omit lazy-load (fillseq DB)

benchmarkmicros/opops/secsecondsoperationsextra
nextwithkey0.019183521295711.918100000000397.7 MB/s
nextwithkey0.019158521947631.916100000000398.2 MB/s
nextwithkey0.019216520401831.922100000000397.0 MB/s
readseq0.019862503454951.986100000000384.1 MB/s
readseq0.019867503333321.987100000000384.0 MB/s
readseq0.019864503405281.986100000000384.1 MB/s

RocksDB v8.10

db_bench (fillrandom+compact+readseq/readrandom)

benchmarkmicros/opops/secsecondsoperationsextra
fillrandom1.427700956142.66210000000038.8 MB/s
compact60119970.000060.1201
readseq0.14768007539.29563213544376.2 MB/s
readseq0.10496607336.54363213544534.4 MB/s
readseq0.10496438876.55563213544533.4 MB/s
readrandom3.028330287302.76610000000011.5 MB/s (63215534 of 100000000 found)

db_bench (fillseq suite)

benchmarkmicros/opops/secsecondsoperationsextra
fillseq0.246405903724.636100000000224.5 MB/s
compact36003765.000036.0041
readseq0.176569118617.571100000000314.8 MB/s
readseq0.102978543010.219100000000541.3 MB/s
readseq0.102982025910.183100000000543.2 MB/s
readrandom3.118320716311.80210000000017.7 MB/s (100000000 of 100000000 found)

memtablerep_bench (skiplist)

benchmarkmetricvalue
fillrandomNumber of threads1
fillrandomElapsed time324614498 us
fillrandomTotal bytes written1621.25 MiB
fillrandomWrite throughput4.99437 MiB/s
fillrandomwrite us/op3.24614
readrandomNumber of threads1
readrandomElapsed time375333532 us
readrandomTotal bytes read1621.25 MiB
readrandomRead throughput4.31948 MiB/s
readrandomread us/op3.75334

RocksDB master (5fe22535)

db_bench (fillrandom+compact+readseq/readrandom)

benchmarkmicros/opops/secsecondsoperationsextra
fillrandom1.450689823144.96510000000038.2 MB/s
compact55175537.000055.1761
readseq0.173577692810.94363216400319.5 MB/s
readseq0.11984159477.51263216400465.5 MB/s
readseq0.12083371197.58363216400461.2 MB/s
readrandom2.933340990293.26410000000011.9 MB/s (63227418 of 100000000 found)

db_bench (fillseq suite)

benchmarkmicros/opops/secsecondsoperationsextra
fillseq0.252396433225.225100000000219.3 MB/s
compact35309177.000035.3091
readseq0.196508948219.648100000000281.5 MB/s
readseq0.118845727811.824100000000467.8 MB/s
readseq0.119840209611.902100000000464.7 MB/s
readrandom3.131319399313.08810000000017.7 MB/s (100000000 of 100000000 found)

memtablerep_bench (skiplist)

benchmarkmetricvalue
fillrandomNumber of threads1
fillrandomElapsed time326645058 us
fillrandomTotal bytes written1621.25 MiB
fillrandomWrite throughput4.96333 MiB/s
fillrandomwrite us/op3.26645
readrandomNumber of threads1
readrandomElapsed time370096230 us
readrandomTotal bytes read1621.25 MiB
readrandomRead throughput4.38061 MiB/s
readrandomread us/op3.70096