Benchmark 10M Profiles

Charts

Execution Time

Execution Time

Write Throughput

Write Throughput

Lookup Throughput

Lookup Throughput

Index Scan Throughput

Index Scan Throughput

Query Throughput

Query Throughput

Resource Footprint

Resource Footprint

Total By Engine

Engine Status Run time Completed phase time Pre-read stabilize Post-update stabilize Settle Reopen Verify Storage Process peak memory Final checksum
ZoneTree Completed 1_037_916 ms 1_003_624 ms 11_319 ms 21_475 ms 34 ms 639 ms 8 ms 730.0 MB 20.2 GB 78E34B89C21C4B51
RocksDB Completed 2_267_368 ms 2_246_395 ms 5_874 ms 12_487 ms 0 ms 52 ms 2_175 ms 2.0 GB 2.9 GB 78E34B89C21C4B51

Correctness

Checksum validation passed across completed engines: ZoneTree, RocksDB.

Interpretation Notes

  • This benchmark measures live single-operation profile inserts, updates, reads, and indexed queries.
  • ZoneTree and RocksDB secondary indexes are maintained by the benchmark application using separate stores.
  • Embedded engines run in the benchmark process.
  • Completed phase time is the sum of measured workload phases. Run time also includes initialization, stabilization, settle/checkpoint, reopen, verification, and reporting overhead.
  • The write throughput chart includes raw write phases and derived write-readiness bars that add the following stabilization phase.
  • Storage is measured after each engine settles or checkpoints its data.
  • Process peak memory is measured for the benchmark process.

Write Readiness

Engine Insert Pre-read stabilize Insert + stabilize Insert ready throughput Update Post-update stabilize Update + stabilize Update ready throughput
ZoneTree 61_305 ms 11_319 ms 72_624 ms 137_696/s 205_745 ms 21_475 ms 227_220 ms 44_010/s
RocksDB 57_008 ms 5_874 ms 62_881 ms 159_030/s 204_026 ms 12_487 ms 216_512 ms 46_187/s

Phase Results

ZoneTree

Phase Operations Time Throughput Checksum
insert profiles 10_000_000 61_305 ms 163_119/s 07762AC56C55E0A5
read by user id 10_000_000 14_612 ms 684_376/s F4608F0DA193D0D9
lookup by email 10_000_000 37_524 ms 266_497/s ADE91BF4BD85A55B
scan country/status index 2_500_000 14_682 ms 170_280/s FBF42B2AEF322871
query country/status 2_500_000 128_968 ms 19_385/s 590A469174D5C47A
scan created-at index 2_500_000 19_293 ms 129_581/s AA7BB5512A595F45
query created-at range 2_500_000 137_209 ms 18_220/s D5F1890132634766
scan top reputation index 2_500_000 11_524 ms 216_943/s C813C20204E07EE5
query top reputation 2_500_000 79_346 ms 31_508/s 7F5BB4ED96D5DEE5
update profiles 10_000_000 205_745 ms 48_604/s 6BDE7DC8A52F666F
post-update read by user id 10_000_000 14_518 ms 688_809/s 5D5C9BD3AB671AA6
post-update lookup by email 10_000_000 37_267 ms 268_331/s D68F7DE2F29ABC22
post-update scan country/status index 2_500_000 14_702 ms 170_042/s F0F2E613042BB2C5
post-update query country/status 2_500_000 130_125 ms 19_212/s BE9E7BB15662BF49
post-update scan top reputation index 2_500_000 11_503 ms 217_336/s E1890D959DA900A5
post-update query top reputation 2_500_000 85_302 ms 29_308/s B57C8C02E31652A5

RocksDB

Phase Operations Time Throughput Checksum
insert profiles 10_000_000 57_008 ms 175_415/s 07762AC56C55E0A5
read by user id 10_000_000 44_080 ms 226_863/s F4608F0DA193D0D9
lookup by email 10_000_000 85_513 ms 116_942/s ADE91BF4BD85A55B
scan country/status index 2_500_000 29_793 ms 83_913/s FBF42B2AEF322871
query country/status 2_500_000 305_075 ms 8_195/s 590A469174D5C47A
scan created-at index 2_500_000 46_090 ms 54_241/s AA7BB5512A595F45
query created-at range 2_500_000 348_998 ms 7_163/s D5F1890132634766
scan top reputation index 2_500_000 27_152 ms 92_074/s C813C20204E07EE5
query top reputation 2_500_000 304_148 ms 8_220/s 7F5BB4ED96D5DEE5
update profiles 10_000_000 204_026 ms 49_013/s 6BDE7DC8A52F666F
post-update read by user id 10_000_000 47_916 ms 208_701/s 5D5C9BD3AB671AA6
post-update lookup by email 10_000_000 89_672 ms 111_518/s D68F7DE2F29ABC22
post-update scan country/status index 2_500_000 29_363 ms 85_140/s F0F2E613042BB2C5
post-update query country/status 2_500_000 304_905 ms 8_199/s BE9E7BB15662BF49
post-update scan top reputation index 2_500_000 26_980 ms 92_661/s E1890D959DA900A5
post-update query top reputation 2_500_000 295_678 ms 8_455/s B57C8C02E31652A5

Configuration

  • Profiles: 10_000_000
  • Profile writes: individual operations
  • UserId reads: 10_000_000
  • Email lookups: 10_000_000
  • Query count: 2_500_000
  • Profile updates: 10_000_000
  • Post-update UserId reads: 10_000_000
  • Post-update email lookups: 10_000_000
  • Post-update query count: 2_500_000
  • Query limit: 100
  • Seed: 570123434
  • Timeout: 120_000 seconds per engine

Environment

  • OS: Ubuntu 24.04.3 LTS
  • Architecture: X64
  • .NET: 10.0.9
  • CPU: AMD EPYC 4345P 8-Core Processor
  • Logical processors: 16
  • Total available memory: 60.4 GB
  • Initial process working set: 708.3 MB

Engine Settings

ZoneTree

  • MutableSegmentMaxItemCount: 250000
  • SparseArrayStepSize: 16
  • KeyCacheSize: 1024
  • ValueCacheSize: 1024
  • IteratorPrefetchSize: 16
  • BlockCacheLifeTime: 1 minutes
  • BottomMergePolicy: Full bottom merge when bottom segment count exceeds 1
  • ReadStabilization: Settle before read/query phases

RocksDB

  • Databases: profiles,email-index,country-status-index,created-at-index,reputation-index
  • Compression: Zstd
  • WriteBufferMb: 1024
  • MaxWriteBufferNumber: 4
  • WriteSync: false
  • ReadStabilization: Compact before read/query phases

Durability Settings

  • ZoneTree: AsyncCompressed WAL default; MutableSegmentMaxItemCount=250000; SparseArrayStepSize=16; KeyCacheSize=1024; ValueCacheSize=1024; IteratorPrefetchSize=16; BlockCacheLifeTime=1 minutes; application-managed secondary indexes; background maintainers enabled.
  • RocksDB: WAL enabled; five separate RocksDB instances; no WriteBatch across indexes; compression=Zstd; write_buffer_size=1024 MB per database; max_write_buffer_number=4.