





| Engine | Status | Run time | Completed phase time | Pre-read stabilize | Post-update stabilize | Settle | Reopen | Verify | Storage | Process peak memory | Final checksum |
|---|
| ZoneTree | Completed | 482_675 ms | 465_911 ms | 4_743 ms | 11_025 ms | 17 ms | 313 ms | 8 ms | 367.0 MB | 6.4 GB | 46D8A7E801AF2C78 |
| RocksDB | Completed | 1_096_116 ms | 1_083_778 ms | 4_369 ms | 6_788 ms | 0 ms | 48 ms | 905 ms | 1.5 GB | 2.2 GB | 46D8A7E801AF2C78 |
Checksum validation passed across completed engines: ZoneTree, RocksDB.
- 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.
| Engine | Insert | Pre-read stabilize | Insert + stabilize | Insert ready throughput | Update | Post-update stabilize | Update + stabilize | Update ready throughput |
|---|
| ZoneTree | 29_378 ms | 4_743 ms | 34_120 ms | 146_540/s | 91_359 ms | 11_025 ms | 102_384 ms | 48_836/s |
| RocksDB | 28_300 ms | 4_369 ms | 32_669 ms | 153_050/s | 89_846 ms | 6_788 ms | 96_635 ms | 51_741/s |
| Phase | Operations | Time | Throughput | Checksum |
|---|
| insert profiles | 5_000_000 | 29_378 ms | 170_197/s | 1CE7E98CB02A5BE5 |
| read by user id | 5_000_000 | 6_055 ms | 825_705/s | AEA5A1780B272814 |
| lookup by email | 5_000_000 | 15_075 ms | 331_678/s | 8C938BAD6D81DE32 |
| scan country/status index | 1_250_000 | 7_195 ms | 173_736/s | 14F9C1B4EC5C77A4 |
| query country/status | 1_250_000 | 63_469 ms | 19_695/s | BE695CC5C1575C79 |
| scan created-at index | 1_250_000 | 9_426 ms | 132_605/s | D829C2BE1D8D7CE9 |
| query created-at range | 1_250_000 | 61_383 ms | 20_364/s | 9522258E5C41C535 |
| scan top reputation index | 1_250_000 | 5_283 ms | 236_600/s | 57554D37E1C53C65 |
| query top reputation | 1_250_000 | 40_126 ms | 31_152/s | C5D2EF10F82C5265 |
| update profiles | 5_000_000 | 91_359 ms | 54_729/s | AD890A8797F25027 |
| post-update read by user id | 5_000_000 | 6_156 ms | 812_174/s | 537ED4CF9543514D |
| post-update lookup by email | 5_000_000 | 15_177 ms | 329_450/s | F71390337A010BCF |
| post-update scan country/status index | 1_250_000 | 7_031 ms | 177_781/s | 0CC5E86584E76211 |
| post-update query country/status | 1_250_000 | 62_010 ms | 20_158/s | 25EFC06A4834C76C |
| post-update scan top reputation index | 1_250_000 | 5_438 ms | 229_846/s | 99CD00E2A0593D45 |
| post-update query top reputation | 1_250_000 | 41_349 ms | 30_231/s | BB9901538093B4C5 |
| Phase | Operations | Time | Throughput | Checksum |
|---|
| insert profiles | 5_000_000 | 28_300 ms | 176_681/s | 1CE7E98CB02A5BE5 |
| read by user id | 5_000_000 | 19_200 ms | 260_421/s | AEA5A1780B272814 |
| lookup by email | 5_000_000 | 38_793 ms | 128_891/s | 8C938BAD6D81DE32 |
| scan country/status index | 1_250_000 | 15_284 ms | 81_784/s | 14F9C1B4EC5C77A4 |
| query country/status | 1_250_000 | 148_662 ms | 8_408/s | BE695CC5C1575C79 |
| scan created-at index | 1_250_000 | 22_667 ms | 55_147/s | D829C2BE1D8D7CE9 |
| query created-at range | 1_250_000 | 168_968 ms | 7_398/s | 9522258E5C41C535 |
| scan top reputation index | 1_250_000 | 14_331 ms | 87_226/s | 57554D37E1C53C65 |
| query top reputation | 1_250_000 | 149_858 ms | 8_341/s | C5D2EF10F82C5265 |
| update profiles | 5_000_000 | 89_846 ms | 55_651/s | AD890A8797F25027 |
| post-update read by user id | 5_000_000 | 19_552 ms | 255_732/s | 537ED4CF9543514D |
| post-update lookup by email | 5_000_000 | 39_374 ms | 126_986/s | F71390337A010BCF |
| post-update scan country/status index | 1_250_000 | 15_193 ms | 82_276/s | 0CC5E86584E76211 |
| post-update query country/status | 1_250_000 | 150_737 ms | 8_293/s | 25EFC06A4834C76C |
| post-update scan top reputation index | 1_250_000 | 14_226 ms | 87_868/s | 99CD00E2A0593D45 |
| post-update query top reputation | 1_250_000 | 148_789 ms | 8_401/s | BB9901538093B4C5 |
- Profiles: 5_000_000
- 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: 100
- Seed: 570123434
- Timeout: 120_000 seconds per engine
- 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: 371.9 MB
- 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
- 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
- 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.