Bench run: plain / 31199586368

← plain home | dcompact →

generated (UTC): 2026-08-07T17:54:24.673791+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 (1.9GiB) ≤ 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)
fillrandom1.7GiB320.7MiB1.9GiB1.9GiB0.92x0.17x
fillseq2.4GiB670.3MiB1.6GiB1.6GiB1.51x0.41x

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)
fillrandom1.9GiB1.9GiB2.1GiB2.1GiB0.91x0.89x
fillrandom-omit130.6MiB148.6MiB2.1GiBn/a0.06x0.07x
fillseq1.9GiB1.9GiB3.2GiB3.3GiB0.57x0.58x
fillseq-omit124.9MiB151.5MiB3.2GiBn/a0.04x0.05x

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 MiB 0 50 100 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 MiB 0 5 10 15 20 25 30 35 40 45 50 55 60 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 MiB 0 50 100 150 200 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 MiB 0 50 100 150 200 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 MiB 0 50 100 150 200 250 300 Time (s) rss shared anony pagecache anony+pc
RocksDB v8.10 — fillseq suite RSS fillseq flush compact readseq readseq readseq readrandom 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 MiB 0 50 100 150 200 Time (s) rss shared anony pagecache anony+pc
RocksDB master (5fe22535) — fillrandom suite RSS fillrandom flush compact readseq readseq readseq readrandom 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 MiB 0 50 100 150 200 250 300 Time (s) rss shared anony pagecache anony+pc
RocksDB master (5fe22535) — fillseq suite RSS 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 250 300 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/29.3s1/39.2s1/27.1s1/22.2s1.34x0.93x0.76x0.69x0.57x
fillrandom113733611279047473966374951.01x1.52x1.78x1.51x1.77x
readrandom532575214995883736343559083.55x14.25x14.96x4.01x4.21x
readseq2401870317025461997789984755991.41x1.52x1.79x1.08x1.27x

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/19.4s1/62.2s1/17.9s1/17.7s3.20x0.92x0.91x0.29x0.29x
fillseq24416272447427399126941072941.00x0.61x0.59x0.61x0.60x
readrandom676290314437113455803204754.68x19.57x21.10x4.18x4.50x
readseq3007828120613498996444484744681.46x3.02x3.55x2.07x2.43x

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
nextwithkey3894860538304225
readseq366524033598432299778992.32x2.28x

fillseq-omit / scan

benchmarkToplingDB zipkeyonly ops/secToplingDB zipkeyvalue ops/secRocksDB v8.10 ops/secv8.10 time / Toplingv8.10 time / zipkeyvalue
nextwithkey5209516340918505
readseq503280385031552899644445.05x5.05x

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 time37194999 us331849192 us349127895 us0.11x
fillrandomWrite throughput43.5878 MiB/s4.88549 MiB/s4.6437 MiB/s9.39x
fillrandomwrite us/op0.371953.318493.491280.11x
readrandomElapsed time52628013 us375218931 us396955433 us0.13x
readrandomRead throughput30.8058 MiB/s4.3208 MiB/s4.0842 MiB/s7.54x
readrandomread us/op0.526283.752193.969550.13x

Per-engine details

ToplingDB zipkeyonly

db_bench (fillrandom+compact+readseq/readrandom)

benchmarkmicros/opops/secsecondsoperationsextra
fillrandom0.879244113733643.9625000000062.9 MB/s
compact29300364.000000029.3001
readseq0.041118243198462.056500000001345.2 MB/s
readseq0.041594240417092.080500000001329.8 MB/s
readseq0.041633240187032.082500000001328.5 MB/s
readrandom0.18776553257529.38850000000186.2 MB/s (31599103 of 50000000 found)

db_bench (fillseq suite)

benchmarkmicros/opops/secsecondsoperationsextra
fillseq0.409562244162720.47850000000135.1 MB/s
compact19430184.000000019.4301
readseq0.032447308188061.622500000001704.7 MB/s
readseq0.032915303800111.646500000001680.4 MB/s
readseq0.033246300782811.662500000001663.7 MB/s
readrandom0.14786467629037.39350000000374.1 MB/s (50000000 of 50000000 found)

db_bench omit lazy-load (fillrandom DB)

benchmarkmicros/opops/secsecondsoperationsextra
nextwithkey0.026209381525611.31150000000291.1 MB/s
nextwithkey0.025656389754441.28350000000297.4 MB/s
nextwithkey0.025674389486051.28450000000297.2 MB/s
readseq0.026590376067651.33050000000286.9 MB/s
readseq0.027120368713071.35650000000281.3 MB/s
readseq0.027282366524031.36450000000279.6 MB/s

db_bench omit lazy-load (fillseq DB)

benchmarkmicros/opops/secsecondsoperationsextra
nextwithkey0.019241519695410.96250000000396.5 MB/s
nextwithkey0.019168521677250.95850000000398.0 MB/s
nextwithkey0.019194520951630.96050000000397.5 MB/s
readseq0.019877503058090.99450000000383.8 MB/s
readseq0.019876503088460.99450000000383.8 MB/s
readseq0.019868503280380.99350000000384.0 MB/s

memtablerep_bench (skiplist)

benchmarkmetricvalue
fillrandomNumber of threads1
fillrandomElapsed time331849192 us
fillrandomTotal bytes written1621.25 MiB
fillrandomWrite throughput4.88549 MiB/s
fillrandomwrite us/op3.31849
readrandomNumber of threads1
readrandomElapsed time375218931 us
readrandomTotal bytes read1621.25 MiB
readrandomRead throughput4.3208 MiB/s
readrandomread us/op3.75219

memtablerep_bench (cspp, ToplingDB only)

benchmarkmetricvalue
fillrandomNumber of threads1
fillrandomElapsed time37194999 us
fillrandomTotal bytes written1621.25 MiB
fillrandomWrite throughput43.5878 MiB/s
fillrandomwrite us/op0.37195
readrandomNumber of threads1
readrandomElapsed time52628013 us
readrandomTotal bytes read1621.25 MiB
readrandomRead throughput30.8058 MiB/s
readrandomread us/op0.52628

ToplingDB zipkeyvalue

db_bench (fillrandom+compact+readseq/readrandom)

benchmarkmicros/opops/secsecondsoperationsextra
fillrandom0.886534112790444.3305000000062.4 MB/s
compact39191205.000000039.1911
readseq0.059392168370352.97050000000931.3 MB/s
readseq0.058951169629182.94850000000938.3 MB/s
readseq0.058735170254612.93750000000941.7 MB/s
readrandom0.666848149958833.3425000000052.4 MB/s (31603628 of 50000000 found)

db_bench (fillseq suite)

benchmarkmicros/opops/secsecondsoperationsextra
fillseq0.408592244742720.43050000000135.4 MB/s
compact62200321.000000062.2001
readseq0.049226203140222.461500000001123.6 MB/s
readseq0.048233207320742.412500000001146.8 MB/s
readseq0.048511206134982.426500000001140.2 MB/s
readrandom0.692659144371134.6335000000079.9 MB/s (50000000 of 50000000 found)

db_bench omit lazy-load (fillrandom DB)

benchmarkmicros/opops/secsecondsoperationsextra
nextwithkey0.026144382475281.30750000000291.8 MB/s
nextwithkey0.026388378940891.31950000000289.1 MB/s
nextwithkey0.026105383042251.30550000000292.2 MB/s
readseq0.027241367082391.36250000000280.1 MB/s
readseq0.027795359757261.39050000000274.5 MB/s
readseq0.027789359843221.38950000000274.5 MB/s

db_bench omit lazy-load (fillseq DB)

benchmarkmicros/opops/secsecondsoperationsextra
nextwithkey0.019231519972120.96250000000396.7 MB/s
nextwithkey0.019212520496090.96150000000397.1 MB/s
nextwithkey0.024438409185051.22250000000312.2 MB/s
readseq0.019895502622680.99550000000383.5 MB/s
readseq0.019895502601970.99550000000383.5 MB/s
readseq0.019873503155280.99450000000383.9 MB/s

RocksDB v8.10

db_bench (fillrandom+compact+readseq/readrandom)

benchmarkmicros/opops/secsecondsoperationsextra
fillrandom1.33874739666.8995000000041.3 MB/s
compact27136115.000027.1361
readseq0.14768194034.63531610314377.2 MB/s
readseq0.10099670823.17131610314551.3 MB/s
readseq0.10099778993.16831610314551.9 MB/s
readrandom2.676373634133.8215000000013.1 MB/s (31610475 of 50000000 found)

db_bench (fillseq suite)

benchmarkmicros/opops/secsecondsoperationsextra
fillseq0.251399126912.52750000000220.8 MB/s
compact17945074.000017.9451
readseq0.16660127208.31650000000332.6 MB/s
readseq0.10199476515.02650000000550.2 MB/s
readseq0.10099644445.01850000000551.2 MB/s
readrandom2.894345580144.6845000000019.1 MB/s (50000000 of 50000000 found)

memtablerep_bench (skiplist)

benchmarkmetricvalue
fillrandomNumber of threads1
fillrandomElapsed time349127895 us
fillrandomTotal bytes written1621.25 MiB
fillrandomWrite throughput4.6437 MiB/s
fillrandomwrite us/op3.49128
readrandomNumber of threads1
readrandomElapsed time396955433 us
readrandomTotal bytes read1621.25 MiB
readrandomRead throughput4.0842 MiB/s
readrandomread us/op3.96955

RocksDB master (5fe22535)

db_bench (fillrandom+compact+readseq/readrandom)

benchmarkmicros/opops/secsecondsoperationsextra
fillrandom1.56963749578.4325000000035.3 MB/s
compact22178417.000022.1781
readseq0.17357675775.48031605925319.0 MB/s
readseq0.11984269943.75131605925466.1 MB/s
readseq0.11884755993.72931605925468.8 MB/s
readrandom2.810355908140.4865000000012.4 MB/s (31598316 of 50000000 found)

db_bench (fillseq suite)

benchmarkmicros/opops/secsecondsoperationsextra
fillseq0.243410729412.17350000000227.2 MB/s
compact17739276.000017.7391
readseq0.19152303739.56050000000289.3 MB/s
readseq0.11884499665.91750000000467.4 MB/s
readseq0.11884744685.90050000000468.7 MB/s
readrandom3.120320475156.0185000000017.7 MB/s (50000000 of 50000000 found)

memtablerep_bench (skiplist)

benchmarkmetricvalue
fillrandomNumber of threads1
fillrandomElapsed time382213275 us
fillrandomTotal bytes written1621.25 MiB
fillrandomWrite throughput4.24173 MiB/s
fillrandomwrite us/op3.82213
readrandomNumber of threads1
readrandomElapsed time386504632 us
readrandomTotal bytes read1621.25 MiB
readrandomRead throughput4.19464 MiB/s
readrandomread us/op3.86505