常见误区

把 mmap 当作“自动持久化”会导致崩溃恢复时索引与数据文件不一致。

正确做法

  1. 数据追加写与索引写分离。
  2. 先写 WAL,再更新 mmap 索引元数据。
  3. 使用版本号和校验和做启动恢复。

恢复流程

  • 读取 checkpoint。
  • 回放 WAL 到最新一致点。
  • 校验索引页并重建损坏段。

小结

mmap 解决的是访问路径效率,不是事务一致性。持久化协议仍要自己设计。