Jepsen: TigerBeetle 0.16.11

主要观点:对 TigerBeetle 分布式 OLTP 数据库进行测试,发现了 7 个客户端和服务器崩溃问题、2 个安全问题,还存在一些性能和可用性问题,如单节点故障时延迟升高、缺乏单节点磁盘故障恢复路径等,建议用户升级到 0.16.43 版本。
关键信息

  • 测试使用 Jepsen 测试库,对 0.16.11 至 0.16.30 版本进行测试,包括多种故障注入。
  • 发现的问题包括请求永不超时、客户端内存访问错误、客户端崩溃、单节点故障延迟升高、查询结果缺失、磁盘故障导致崩溃、升级时的检查点分歧等。
  • TigerBeetle 对磁盘故障有较强的恢复能力,但缺乏单节点磁盘故障恢复路径。
  • 建议用户仔细考虑客户端的重试行为,避免过度使用断言导致可用性问题。
    重要细节
  • TigerBeetle 基于 Viewstamped Replication 共识协议,提供强序列化一致性,专为双入账会计设计,优化高争用和高吞吐量工作负载。
  • 定义了明确的时间模型,数据模型专为双入账记账设计,只有账户和转账,操作以请求形式进行,每个请求是单个事务。
  • 测试设计包括构建测试套件,利用 TigerBeetle 的事务顺序进行检查,模型检查状态机,生成操作,注入故障等。
  • 故障注入包括进程崩溃、网络分区、时钟变化、文件 corruption 等,对不同节点和区域进行故障模拟。
  • 讨论了安全性、性能、可用性等方面的问题,以及未来的工作方向,如测试超时语义、扩展升级测试、实现节点恢复等。
阅读 7
0 条评论