主要观点:对 TigerBeetle 分布式 OLTP 数据库进行测试,发现了 7 个客户端和服务器崩溃问题、2 个安全问题,还存在一些性能和可用性问题,如单节点故障时延迟升高、缺乏单节点磁盘故障恢复路径等,建议用户升级到 0.16.43 版本。
关键信息:
- 测试使用 Jepsen 测试库,对 0.16.11 至 0.16.30 版本进行测试,包括多种故障注入。
- 发现的问题包括请求永不超时、客户端内存访问错误、客户端崩溃、单节点故障延迟升高、查询结果缺失、磁盘故障导致崩溃、升级时的检查点分歧等。
- TigerBeetle 对磁盘故障有较强的恢复能力,但缺乏单节点磁盘故障恢复路径。
- 建议用户仔细考虑客户端的重试行为,避免过度使用断言导致可用性问题。
重要细节: - TigerBeetle 基于 Viewstamped Replication 共识协议,提供强序列化一致性,专为双入账会计设计,优化高争用和高吞吐量工作负载。
- 定义了明确的时间模型,数据模型专为双入账记账设计,只有账户和转账,操作以请求形式进行,每个请求是单个事务。
- 测试设计包括构建测试套件,利用 TigerBeetle 的事务顺序进行检查,模型检查状态机,生成操作,注入故障等。
- 故障注入包括进程崩溃、网络分区、时钟变化、文件 corruption 等,对不同节点和区域进行故障模拟。
- 讨论了安全性、性能、可用性等方面的问题,以及未来的工作方向,如测试超时语义、扩展升级测试、实现节点恢复等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。