CORE CONCEPTS · 文档数据库 · 同步
Apache CouchDB 核心知识
CouchDB 围绕 HTTP、MVCC 修订树和复制构建。最重要的是接受最终一致复制与应用级冲突处理,而不是把它当 MongoDB 替代品。
学完应该能做到
- 能解释 revision 与冲突
- 能设计复制拓扑
- 能选择 Mango 或 View
三个必须建立的心智模型
Revision 与 MVCC
更新创建新 revision,冲突分支可能同时存在;_rev 是并发控制令牌而非业务版本号。
- 写入携带当前 _rev
- 保留业务合并策略
- 不要依赖 revision 排序
复制与冲突
复制是增量、可恢复和双向的,但不会自动按业务语义合并冲突。
- 监控 checkpoint
- 设计幂等文档
- 定期扫描冲突
Mango 与 View
Mango 提供声明式选择器,MapReduce View 适合预计算索引;两者能力与成本不同。
- 为 selector 建索引
- 避免全库扫描
- 规划索引重建
把知识落到工程决策
建模前
先写出访问模式、正确性边界、数据生命周期和故障预算,再决定表、键、索引或分区。
上线前
使用接近生产的数据分布与并发压测,记录查询计划、资源水位和恢复时间作为基线。
运行中
监控延迟分位数、容量增长、后台维护与复制健康;报警必须能映射到可执行处置步骤。