vmemkv Benchmark Logs

Larger-than-memory Key-Value ストア vmemkv の性能評価データおよび検証実験ログのインデックス。

重要な実験結果 (Important Results)

Date Link Description
2026-11-08 AWS i4i Full Matrix (Lock-free T2 Ownership + In-place Base Boundary Bypass)
  • Eliminated hot-path mutexes and dynamic allocations in T2 ownership via preallocated lock-free Treiber stacks, dropping update lock contention to 314ns.
  • Fast-pathed base_boundary check in try_in_place_update before seqlock SSD reads, bypassing page-fault overhead and accelerating 1KB LTM update mutation from 70.3us to 6.51us (-90.7%) and reaching 105.7k ops/s (+13.8% over 10/23).
  • Recovered background checkpoint probe from 50s timeout to 2.01s via deterministic pre-splitting. All 5 parallel tasks (including background maintenance probes) completed cleanly.
2026-11-07 AWS i4i Pruned Full Matrix (A2 Pacing Gate + 64MiB Chunked msync + Churn Probe)
  • Pruned thread counts (1, 32; 1, 4, 16, 32 for Insert/Update) and focused ablation (+Pin variants on Get-Hit and Scan). Max single-instance duration dropped from >6.5h to 1h50m with zero timeouts across all 5 parallel VMs.
  • Applied A2 Compaction Pacing Gate (10s min interval, 1,058 segments cap) and 64MiB chunked msync: smoothed write pauses under steady Zipf updates and reduced LTM msync latency to ~10ms even on 13GB+ corpora.
  • Integrated Compaction Churn Probe and Checkpoint Scale Probe into the 5-parallel benchmark suite alongside the complete rival matrix (RocksDB, BlobDB, LMDB, LeanStore).
2026-11-05 AWS i4i shuffled Scan remeasure (background compaction)
  • Reran 80 VMemKV LTM shuffled-Scan cells (1KB/64KB, Zipf/Uniform, five variants, threads 1/4/16/32; median-of-3). Shuffled masters drained background compaction before checkpoint.
  • Against 10/23, Default LTM 1KB shuffled Scan improved 4.6-5.5x for Uniform and 3.1-4.6x for Zipf. 64KB rates were also higher in this cross-run comparison.
  • 10/23 LTM used MGLRU 0x0007; 11/05 VMemKV used classic LRU. Non-target matrix cells are carried forward in the self-contained 11/05 report.
2026-10-23 AWS i4i median-of-3 (10/23, Normal/Pread pins + in-run whiskers)
  • Full matrix with 3 repetitions per cell; medians plotted, in-run SD whiskers on max-thread points. Adds Normal/Pread read-policy pins (LTM only).
  • Shuffled-load Scan twins appended afterward (same protocol, later binary): key order != layout order. Read-path ranking inverts under shuffle -- pread/random win by ~10x where sequential mmap dominated ordered scans.
  • No systematic regression vs 09/26 (VMemKV medians within 1%); LTM-1KB recovered via 4-way partitioned re-run with stage resume after SSH drops.
2026-09-26 AWS i4i x5 split-MGLRU (09/26, quiesce + WAL separation)
  • Clone quiesce + second-NVMe WAL separation standard on LTM; write variance resolved. LTM-1KB matrix recovered complete from per-group stages after Spot interruptions.
2026-09-23 AWS i4i x5 split-MGLRU (09/23, scan-fix)
  • Batched reading for Scan operations was removed.
2026-09-21 AWS i4i x5 split-MGLRU (09/21, full matrix)
  • 09/14正本からの差分は4点。(1)MGLRU: VMemKV/LTMのみoff(推奨デプロイ条件)、他はON。(2)ページ内完結配置: 1ページ以下のレコードが境界を跨がない(1 Getあたり最大1 fault)。(3)8B inlineのmemcmp除去。(4)測定誤差削減: LTMセル単位隔離。
2026-09-14 AWS i4i x5 (09/14, full matrix)
  • 全セルのフル5並列再測定(正本)。LeanStore書きセルはawait SpinBackoff修正後にクリーン再測定しマージ。24勝3分5敗は2026091118と同一構成。
2026-09-11 AWS i4i x5 (09/11, LeanStore synced)
  • LeanStore全セルをper-op group-commit durability (sync-wait) 条件で再測定しマージ。LeanStore Delete/1KBはclone事前sync修正後に再測定し復活 (初回timed fdatasyncがコピー直後のclone全体をflushしていた)。
2026-09-03 AWS i4i x5 (09/03)
  • T2をMAP_PRIVATE→MAP_SHARED化 (page cache書き込みをmsync()で永続化)。WAL世代単位セグメント分割。WalMaxBytesSinceCheckpointの大値サイズ不発火を修正。
  • defragment()恒久no-op化と関連機構 (TailEntryTracker等) の削除。T1AppendCapacity 2^22→2^21。
2026-08-21 AWS i4i (08/21)
  • T2 cloneの固定パス再利用 + hole温存コピー (sparse対応)。XFS+reflink依存を撤去しext4へ。
  • defrag scaling probe追加。
その他の実験結果 (Other Results)
Date Link Description
2026-09-11 AWS i4i x5 (09/11)
  • 非同期durability条件での計測 (F1 single-scan get適用版、比較用に保持)。
2026-09-07 AWS i4i x5 (09/07)
  • ShardedT1Index (T1 range-sharding) をVMemKVImplへ結線。reorganize/checkpointをシャード単位にbound。
  • KVStoreコンセプトにreorganize/checkpoint/get_statistics追加。T1_Splits計数。YCSB-E強制reorganizeトリガー撤去。
2026-08-17 AWS i4i (08/17)
  • checkpoint()/defragment()をreflink clone + hole punchに統一。新実験 Churn-Ratio Scaling / Corpus-Size Invariance 追加。--without-rivalsでVMemKVのみ再計測。
2026-08-13 AWS i4i (08/13)
  • base領域読み取りのper-record 3経路動的選択。Get小レコード経路のmapping修正。try_read_base_record()へ統合。
2026-08-10 AWS i4i (08/10)
  • NoMadvise/SimdScanアブレーション撤去。T2 reorganizeを物理オフセット順コンパクションへ再設計。WAL/checkpoint分離とreorganize()/defragment()/checkpoint()分割。ScanBaseSequential追加。
2026-08-06 AWS i4i (08/06) コンパイル時アブレーション実験として madvise(..., MADV_RANDOM) を無効化した NoMadvise バリアントを新規導入。
2026-07-29 AWS c6id (07/29) WAL / Checkpoint 実装完了。ベンチマークのバグ修正済み。
2026-08-04 AWS i4i (08/04) T1 race修正 (drain barrier、snapshot取りこぼし)。Scanベンチの不公平修正。単発reorganize所要時間のcorpus sweep実験追加。
2026-07-31 AWS i4i (07/31) T1Index::scan()のソート済み分スキップ直接マージ。update inline高速パス。THP設定確認とmadvise強制。
2026-07-30 AWS i4i (07/30) WAL group commit通知をnotify_all化。T1 append bounds-skip。c6idからi4iへ移行。
2026-07-15 AWS c6id (07/16) YCSB-E (Scan 95% / Insert 5%)追加。Reorganizeトリガーをadaptive化。
2026-07-15 AWS c6id (07/15) ゼロアロケーションAPIに変更。Scanの性能が大幅に向上。
2026-07-13 AWS c6id (07/13) ScanがO(N)になっていたのを修正。および並行 Reorganize 中の Lost Update 整合性バグ修正。
2026-07-12 AWS c6id (07/12) 初期実装の全 CRUD / Scan 性能 of vmemkv。WAL / Checkpoint 未実装につき書き込み性能は高めに出ていることに注意。