Fork/leveldb

Fork更新于 2026/06/26

LevelDB latency experiments

面向 LevelDB WAL 与 compaction 长尾延迟的测量、group commit 优化和同步写实验分支。

这个 fork 用可复现 benchmark 分离 WAL fdatasync 与 compaction 对前台请求的长尾影响,再针对同步写路径做小范围优化。实验保持 LevelDB API 和存储格式兼容;其中 wal_bytes_per_sync 默认关闭,group commit 调度则会改变默认写入分组行为。

已完成实验

  • 扩展 histogram,统一输出 p50、p95、p99、p99.9 与 max。
  • 增加 readwhilesyncwritesyncmixedwrite 和基线脚本。
  • 引入可选 wal_bytes_per_sync,在 Linux 使用 sync_file_range 提前回写脏页。
  • 调整 batch group,使异步 leader 可以吸收同步写者并代表整组执行一次 sync。
  • 为 mixed-sync durability 与 sync coalescing 增加回归测试。
  • 保存各阶段 A/B 报告和跨机器恢复步骤。

测试表明文件系统本身的 journal latency 可能掩盖优化收益,因此该分支更强调先测量存储地板,再决定继续优化 WAL 还是 compaction 调度。

相关阅读

长文为什么 InnoDB doublewrite buffer 不能恢复 torn page长文PolarFS: An Ultra-low Latency and Failure Resilient Distributed File System for Shared Storage Cloud DatabaseMemo修正 ZFS 主机的 Node Exporter 内存告警