主要观点:rqlite 是用 Go 编写的轻量级开源分布式关系数据库,基于 SQLite 和 Raft,注重可靠性和质量,其测试策略有效。
关键信息:
- 起源于 2014 年,开发和部署超 10 年,生产中报告少于 10 次 panic。
- 遵循测试金字塔,以单元测试为基础,系统测试验证共识,端到端测试做烟雾检查。
- 单元测试约 27000 行,系统测试约 7000 行,端到端测试约 5000 行。
- 进行性能测试评估负载下的极限,如大 SQLite 数据库测试等。
- 从测试中得到诸多经验教训,如尽早开始测试等。
重要细节: - 单元测试覆盖孤立组件,速度和精度平衡好,设计易测试则接口干净。
- 系统测试聚焦 Raft 共识模块与 SQLite 交互,包括多种配置。
- 端到端测试用 Python 验证基本操作,避免过度依赖。
- 性能测试测量多种指标,如插入速率等,发现内存管理等瓶颈。
- 测试经验包括开始测试早、代码简单等 8 点。
- 持续优化,如针对 fsync 调用进行磁盘使用优化。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。