Bench run: plain / 31191036555

← plain home | dcompact →

generated (UTC): 2026-08-07T16:10:39.257434+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.6GiB316.5MiB1.9GiB1.9GiB0.83x0.17x
fillseq2.4GiB467.8MiB1.6GiB1.6GiB1.51x0.28x

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.4GiB1.6GiB2.1GiB2.1GiB0.67x0.75x
fillrandom-omit132.0MiB146.0MiB2.1GiBn/a0.06x0.07x
fillseq940.0MiB820.3MiB3.2GiB3.3GiB0.28x0.25x
fillseq-omit124.0MiB151.0MiB3.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 MiB 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 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 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 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/23.0s1/44.4s1/24.8s1/22.6s1.93x1.08x0.98x0.56x0.51x
fillrandom118885811592827068616601601.03x1.68x1.80x1.64x1.76x
readrandom442551717166803514743485232.58x12.59x12.70x4.88x4.93x
readseq2400816217195491999291184456181.40x1.52x1.80x1.09x1.29x

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/37.8s1/51.6s1/17.9s1/17.7s1.36x0.47x0.47x0.35x0.34x
fillseq28472522836759404578037701571.00x0.70x0.76x0.70x0.75x
readrandom696868114542973388873152204.79x20.56x22.11x4.29x4.61x
readseq3031070920701045996107284453011.46x3.04x3.59x2.08x2.45x

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
nextwithkey3875214938937595
readseq368719323711784399929112.33x2.35x

fillseq-omit / scan

benchmarkToplingDB zipkeyonly ops/secToplingDB zipkeyvalue ops/secRocksDB v8.10 ops/secv8.10 time / Toplingv8.10 time / zipkeyvalue
nextwithkey5184963151867166
readseq501661505022515999610725.04x5.04x

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 time38336471 us363217985 us343100186 us0.11x
fillrandomWrite throughput42.2899 MiB/s4.46356 MiB/s4.72529 MiB/s8.95x
fillrandomwrite us/op0.3833653.632183.4310.11x
readrandomElapsed time53108435 us392214148 us399765994 us0.13x
readrandomRead throughput30.5271 MiB/s4.13357 MiB/s4.05549 MiB/s7.53x
readrandomread us/op0.5310843.922143.997660.13x

Per-engine details

ToplingDB zipkeyonly

db_bench (fillrandom+compact+readseq/readrandom)

benchmarkmicros/opops/secsecondsoperationsextra
fillrandom0.841143118885842.0575000000065.8 MB/s
compact22978758.000000022.9791
readseq0.042135237327762.107500000001312.7 MB/s
readseq0.041484241049582.074500000001333.3 MB/s
readseq0.041652240081622.083500000001328.0 MB/s
readrandom0.225961442551711.29850000000154.7 MB/s (31603732 of 50000000 found)

db_bench (fillseq suite)

benchmarkmicros/opops/secsecondsoperationsextra
fillseq0.351215284725217.56150000000157.5 MB/s
compact37847513.000000037.8481
readseq0.032429308351891.622500000001705.6 MB/s
readseq0.032830304589431.642500000001684.8 MB/s
readseq0.032990303107091.650500000001676.6 MB/s
readrandom0.14349969686817.17550000000385.5 MB/s (50000000 of 50000000 found)

db_bench omit lazy-load (fillrandom DB)

benchmarkmicros/opops/secsecondsoperationsextra
nextwithkey0.026035384081511.30250000000293.0 MB/s
nextwithkey0.025808387453931.29050000000295.6 MB/s
nextwithkey0.025803387521491.29050000000295.7 MB/s
readseq0.026614375725141.33150000000286.7 MB/s
readseq0.026712374347041.33650000000285.6 MB/s
readseq0.027120368719321.35650000000281.3 MB/s

db_bench omit lazy-load (fillseq DB)

benchmarkmicros/opops/secsecondsoperationsextra
nextwithkey0.019250519441660.96350000000396.3 MB/s
nextwithkey0.019193520992880.96050000000397.5 MB/s
nextwithkey0.019286518496310.96450000000395.6 MB/s
readseq0.019917502037260.99650000000383.0 MB/s
readseq0.019929501746570.99750000000382.8 MB/s
readseq0.019932501661500.99750000000382.7 MB/s

memtablerep_bench (skiplist)

benchmarkmetricvalue
fillrandomNumber of threads1
fillrandomElapsed time363217985 us
fillrandomTotal bytes written1621.25 MiB
fillrandomWrite throughput4.46356 MiB/s
fillrandomwrite us/op3.63218
readrandomNumber of threads1
readrandomElapsed time392214148 us
readrandomTotal bytes read1621.25 MiB
readrandomRead throughput4.13357 MiB/s
readrandomread us/op3.92214

memtablerep_bench (cspp, ToplingDB only)

benchmarkmetricvalue
fillrandomNumber of threads1
fillrandomElapsed time38336471 us
fillrandomTotal bytes written1621.25 MiB
fillrandomWrite throughput42.2899 MiB/s
fillrandomwrite us/op0.383365
readrandomNumber of threads1
readrandomElapsed time53108435 us
readrandomTotal bytes read1621.25 MiB
readrandomRead throughput30.5271 MiB/s
readrandomread us/op0.531084

ToplingDB zipkeyvalue

db_bench (fillrandom+compact+readseq/readrandom)

benchmarkmicros/opops/secsecondsoperationsextra
fillrandom0.862600115928243.1305000000064.1 MB/s
compact44355074.000000044.3551
readseq0.058314171482752.91650000000948.5 MB/s
readseq0.058000172413912.90050000000953.7 MB/s
readseq0.058154171954912.90850000000951.1 MB/s
readrandom0.582519171668029.1265000000060.0 MB/s (31600506 of 50000000 found)

db_bench (fillseq suite)

benchmarkmicros/opops/secsecondsoperationsextra
fillseq0.352514283675917.62650000000156.9 MB/s
compact51602254.000000051.6021
readseq0.048745205145622.437500000001134.7 MB/s
readseq0.048198207471202.410500000001147.6 MB/s
readseq0.048306207010452.415500000001145.0 MB/s
readrandom0.687616145429734.3815000000080.4 MB/s (50000000 of 50000000 found)

db_bench omit lazy-load (fillrandom DB)

benchmarkmicros/opops/secsecondsoperationsextra
nextwithkey0.026031384152921.30250000000293.1 MB/s
nextwithkey0.025769388046311.28950000000296.1 MB/s
nextwithkey0.025682389375951.28450000000297.1 MB/s
readseq0.026629375518591.33150000000286.5 MB/s
readseq0.026915371530091.34650000000283.5 MB/s
readseq0.026940371178431.34750000000283.2 MB/s

db_bench omit lazy-load (fillseq DB)

benchmarkmicros/opops/secsecondsoperationsextra
nextwithkey0.019255519298690.96350000000396.2 MB/s
nextwithkey0.019213520438120.96150000000397.1 MB/s
nextwithkey0.019278518671660.96450000000395.7 MB/s
readseq0.019902502421670.99550000000383.3 MB/s
readseq0.019915502100280.99650000000383.1 MB/s
readseq0.019909502251590.99650000000383.2 MB/s

RocksDB v8.10

db_bench (fillrandom+compact+readseq/readrandom)

benchmarkmicros/opops/secsecondsoperationsextra
fillrandom1.41570686170.7355000000039.1 MB/s
compact24783923.000024.7841
readseq0.14668353274.62431604112378.1 MB/s
readseq0.10099935563.16231604112552.8 MB/s
readseq0.10099929113.16331604112552.7 MB/s
readrandom2.845351474142.2585000000012.3 MB/s (31598725 of 50000000 found)

db_bench (fillseq suite)

benchmarkmicros/opops/secsecondsoperationsextra
fillseq0.247404578012.35950000000223.8 MB/s
compact17879957.000017.8801
readseq0.16759861268.35350000000331.1 MB/s
readseq0.10199306625.03550000000549.3 MB/s
readseq0.10099610725.02050000000551.0 MB/s
readrandom2.951338887147.5425000000018.7 MB/s (50000000 of 50000000 found)

memtablerep_bench (skiplist)

benchmarkmetricvalue
fillrandomNumber of threads1
fillrandomElapsed time343100186 us
fillrandomTotal bytes written1621.25 MiB
fillrandomWrite throughput4.72529 MiB/s
fillrandomwrite us/op3.431
readrandomNumber of threads1
readrandomElapsed time399765994 us
readrandomTotal bytes read1621.25 MiB
readrandomRead throughput4.05549 MiB/s
readrandomread us/op3.99766

RocksDB master (5fe22535)

db_bench (fillrandom+compact+readseq/readrandom)

benchmarkmicros/opops/secsecondsoperationsextra
fillrandom1.51566016075.7395000000036.5 MB/s
compact22628122.000022.6281
readseq0.17756509345.59331606806312.6 MB/s
readseq0.11984293783.75031606806466.3 MB/s
readseq0.11884456183.74231606806467.2 MB/s
readrandom2.869348523143.4625000000012.2 MB/s (31605159 of 50000000 found)

db_bench (fillseq suite)

benchmarkmicros/opops/secsecondsoperationsextra
fillseq0.265377015713.26250000000208.5 MB/s
compact17720037.000017.7201
readseq0.19351940999.62650000000287.3 MB/s
readseq0.11884466505.92050000000467.2 MB/s
readseq0.11884453015.92050000000467.1 MB/s
readrandom3.172315220158.6195000000017.4 MB/s (50000000 of 50000000 found)

memtablerep_bench (skiplist)

benchmarkmetricvalue
fillrandomNumber of threads1
fillrandomElapsed time364737544 us
fillrandomTotal bytes written1621.25 MiB
fillrandomWrite throughput4.44497 MiB/s
fillrandomwrite us/op3.64738
readrandomNumber of threads1
readrandomElapsed time394402970 us
readrandomTotal bytes read1621.25 MiB
readrandomRead throughput4.11063 MiB/s
readrandomread us/op3.94403