Profiles 1M P1

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 58_220 ms 54_721 ms 1_231 ms 1_539 ms 16 ms 113 ms 12 ms 73.4 MB 1.7 GB B7578931045C8FC5
RocksDB Completed 148_493 ms 145_073 ms 1_068 ms 1_853 ms 1 ms 47 ms 141 ms 313.3 MB 630.9 MB B7578931045C8FC5
SQLite Completed 421_729 ms 421_514 ms n/a n/a 30 ms 1 ms 58 ms 284.6 MB 663.5 MB B7578931045C8FC5

Correctness

Checksum validation passed across completed engines: ZoneTree, RocksDB, SQLite.

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.
  • SQLite maintains secondary indexes inside the database engine.
  • 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 3_901 ms 1_231 ms 5_132 ms 194_847/s 6_654 ms 1_539 ms 8_193 ms 122_056/s
RocksDB 9_830 ms 1_068 ms 10_898 ms 91_758/s 22_256 ms 1_853 ms 24_109 ms 41_479/s
SQLite 128_306 ms n/a 128_306 ms 7_794/s 181_530 ms n/a 181_530 ms 5_509/s

Phase Results

ZoneTree

Phase Operations Time Throughput Checksum
insert profiles 1_000_000 3_901 ms 256_328/s 70EEB1E90366F6E5
read by user id 1_000_000 1_042 ms 959_984/s 0FB577C390019AC8
lookup by email 1_000_000 2_375 ms 421_135/s 9C199CC596F7AC10
scan country/status index 250_000 1_025 ms 243_853/s 61A2EA3E2821B78E
query country/status 250_000 7_675 ms 32_575/s 59430B6E3710B73A
scan created-at index 250_000 1_296 ms 192_950/s 5DCF6A52134EE2E1
query created-at range 250_000 6_020 ms 41_529/s F7273374D314AB37
scan top reputation index 250_000 806 ms 310_067/s 29FF27B972C9DD05
query top reputation 250_000 5_024 ms 49_761/s BF3EF75489BD5D95
update profiles 1_000_000 6_654 ms 150_293/s 2440ADD57E65500B
post-update read by user id 1_000_000 1_066 ms 937_925/s 7DB9AA24CC9A8B8E
post-update lookup by email 1_000_000 2_429 ms 411_723/s 43569B6DA38ACCB5
post-update scan country/status index 250_000 1_021 ms 244_799/s E81A287B61AC0B4A
post-update query country/status 250_000 8_090 ms 30_904/s 187087226FE86156
post-update scan top reputation index 250_000 845 ms 295_776/s 2FCAC43A8D128B85
post-update query top reputation 250_000 5_453 ms 45_849/s A983697B4465FA75

RocksDB

Phase Operations Time Throughput Checksum
insert profiles 1_000_000 9_830 ms 101_726/s 70EEB1E90366F6E5
read by user id 1_000_000 4_245 ms 235_578/s 0FB577C390019AC8
lookup by email 1_000_000 8_361 ms 119_609/s 9C199CC596F7AC10
scan country/status index 250_000 1_634 ms 152_963/s 61A2EA3E2821B78E
query country/status 250_000 15_608 ms 16_017/s 59430B6E3710B73A
scan created-at index 250_000 2_903 ms 86_121/s 5DCF6A52134EE2E1
query created-at range 250_000 17_925 ms 13_947/s F7273374D314AB37
scan top reputation index 250_000 1_471 ms 170_005/s 29FF27B972C9DD05
query top reputation 250_000 14_131 ms 17_691/s BF3EF75489BD5D95
update profiles 1_000_000 22_256 ms 44_932/s 2440ADD57E65500B
post-update read by user id 1_000_000 4_282 ms 233_528/s 7DB9AA24CC9A8B8E
post-update lookup by email 1_000_000 8_498 ms 117_673/s 43569B6DA38ACCB5
post-update scan country/status index 250_000 1_627 ms 153_620/s E81A287B61AC0B4A
post-update query country/status 250_000 15_794 ms 15_829/s 187087226FE86156
post-update scan top reputation index 250_000 1_562 ms 160_028/s 2FCAC43A8D128B85
post-update query top reputation 250_000 14_945 ms 16_728/s A983697B4465FA75

SQLite

Phase Operations Time Throughput Checksum
insert profiles 1_000_000 128_306 ms 7_794/s 70EEB1E90366F6E5
read by user id 1_000_000 2_962 ms 337_615/s 0FB577C390019AC8
lookup by email 1_000_000 4_073 ms 245_512/s 9C199CC596F7AC10
scan country/status index 250_000 3_136 ms 79_731/s 61A2EA3E2821B78E
query country/status 250_000 17_237 ms 14_504/s 59430B6E3710B73A
scan created-at index 250_000 3_127 ms 79_948/s 5DCF6A52134EE2E1
query created-at range 250_000 15_845 ms 15_778/s F7273374D314AB37
scan top reputation index 250_000 2_717 ms 92_015/s 29FF27B972C9DD05
query top reputation 250_000 16_076 ms 15_551/s BF3EF75489BD5D95
update profiles 1_000_000 181_530 ms 5_509/s 2440ADD57E65500B
post-update read by user id 1_000_000 2_909 ms 343_811/s 7DB9AA24CC9A8B8E
post-update lookup by email 1_000_000 4_030 ms 248_126/s 43569B6DA38ACCB5
post-update scan country/status index 250_000 3_054 ms 81_872/s E81A287B61AC0B4A
post-update query country/status 250_000 17_645 ms 14_168/s 187087226FE86156
post-update scan top reputation index 250_000 2_644 ms 94_559/s 2FCAC43A8D128B85
post-update query top reputation 250_000 16_224 ms 15_409/s A983697B4465FA75

Configuration

  • Profiles: 1_000_000
  • Parallelism: 1
  • Profile writes: individual operations
  • UserId reads: 1_000_000
  • Email lookups: 1_000_000
  • Query count: 250_000
  • Profile updates: 1_000_000
  • Post-update UserId reads: 1_000_000
  • Post-update email lookups: 1_000_000
  • Post-update query count: 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: 141.2 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

SQLite

  • JournalMode: WAL
  • Synchronous: NORMAL
  • CacheMb: 1024
  • MmapMb: 1024
  • TempStore: MEMORY

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.
  • SQLite: WAL journal mode; synchronous=NORMAL; cache=1024 MB; mmap=1024 MB; native SQL indexes; single-row writes use autocommit.