Profiles 5M P16

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 67_523 ms 52_445 ms 6_330 ms 7_629 ms 15 ms 240 ms 11 ms 367.4 MB 10.1 GB 46D8A7E801AF2C78
RocksDB Completed 230_045 ms 217_125 ms 5_731 ms 5_945 ms 1 ms 50 ms 708 ms 1.5 GB 2.1 GB 46D8A7E801AF2C78

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 5_933 ms 6_330 ms 12_264 ms 407_709/s 7_926 ms 7_629 ms 15_555 ms 321_442/s
RocksDB 26_511 ms 5_731 ms 32_242 ms 155_078/s 46_108 ms 5_945 ms 52_054 ms 96_055/s

Phase Results

ZoneTree

Phase Operations Time Throughput Checksum
insert profiles 5_000_000 5_933 ms 842_714/s A9B2B7203E9651E7
read by user id 5_000_000 689 ms 7_260_318/s 1D1E5DD4C5A178CD
lookup by email 5_000_000 1_465 ms 3_413_763/s 396156D83FB49B40
scan country/status index 1_250_000 955 ms 1_309_265/s B7BD2D152F1AFFE1
query country/status 1_250_000 8_518 ms 146_750/s A1DE293574C06D66
scan created-at index 1_250_000 1_122 ms 1_113_677/s F90B4F28382222C9
query created-at range 1_250_000 3_460 ms 361_247/s 2594FE6637C9CC2A
scan top reputation index 1_250_000 2_481 ms 503_928/s 998AC961090B0585
query top reputation 1_250_000 2_965 ms 421_575/s A09380754DCE86A5
update profiles 5_000_000 7_926 ms 630_875/s 2A5E0D2A49A10A67
post-update read by user id 5_000_000 613 ms 8_159_045/s E7459C3F8BC27513
post-update lookup by email 5_000_000 1_426 ms 3_506_229/s 01FFB666E8034783
post-update scan country/status index 1_250_000 992 ms 1_260_098/s 90A88BB781FB061D
post-update query country/status 1_250_000 8_248 ms 151_545/s 2BF4FDDC318767FC
post-update scan top reputation index 1_250_000 2_499 ms 500_176/s 884C15620C602745
post-update query top reputation 1_250_000 3_153 ms 396_407/s 36BFEEF3B7B7E4C5

RocksDB

Phase Operations Time Throughput Checksum
insert profiles 5_000_000 26_511 ms 188_603/s A9B2B7203E9651E7
read by user id 5_000_000 7_658 ms 652_915/s 1D1E5DD4C5A178CD
lookup by email 5_000_000 33_855 ms 147_690/s 396156D83FB49B40
scan country/status index 1_250_000 706 ms 1_770_131/s B7BD2D152F1AFFE1
query country/status 1_250_000 7_549 ms 165_582/s A1DE293574C06D66
scan created-at index 1_250_000 11_349 ms 110_139/s F90B4F28382222C9
query created-at range 1_250_000 14_506 ms 86_169/s 2594FE6637C9CC2A
scan top reputation index 1_250_000 828 ms 1_509_788/s 998AC961090B0585
query top reputation 1_250_000 8_471 ms 147_559/s A09380754DCE86A5
update profiles 5_000_000 46_108 ms 108_440/s 2A5E0D2A49A10A67
post-update read by user id 5_000_000 7_644 ms 654_129/s E7459C3F8BC27513
post-update lookup by email 5_000_000 33_902 ms 147_486/s 01FFB666E8034783
post-update scan country/status index 1_250_000 722 ms 1_730_843/s 90A88BB781FB061D
post-update query country/status 1_250_000 8_145 ms 153_473/s 2BF4FDDC318767FC
post-update scan top reputation index 1_250_000 873 ms 1_432_316/s 884C15620C602745
post-update query top reputation 1_250_000 8_298 ms 150_640/s 36BFEEF3B7B7E4C5

Configuration

  • Profiles: 5_000_000
  • Parallelism: 16
  • Profile writes: individual operations
  • UserId reads: 5_000_000
  • Email lookups: 5_000_000
  • Query count: 1_250_000
  • Profile updates: 5_000_000
  • Post-update UserId reads: 5_000_000
  • Post-update email lookups: 5_000_000
  • Post-update query count: 1_250_000
  • Query limit: 50
  • Seed: 570123434
  • Timeout: 120_000 seconds per engine

Environment

  • OS: Microsoft Windows 10.0.26200
  • Architecture: X64
  • .NET: 10.0.6
  • CPU: Intel(R) Core(TM) Ultra 7 265KF
  • Logical processors: 20
  • Total available memory: 63.6 GB
  • Initial process working set: 422.8 MB
  • Benchmark version: 1.0.0.0
  • ZoneTree version: 1.9.6.0
  • Microsoft.Data.Sqlite version: 10.0.0
  • SQLite runtime version: 3.50.3
  • SQLitePCLRaw.core version: 2.1.11
  • SQLitePCLRaw.lib.e_sqlite3 version: 3.50.3
  • RocksDbSharp version: 6.2.2
  • RocksDbNative version: 6.2.2
  • MySqlConnector version: 2.4.0

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.