Jepsen: TigerBeetle 0.16.11
a year ago
- #database
- #financial-technology
- #distributed-systems
- TigerBeetle是一款专为复式记账优化的OLTP数据库,强调安全性与速度。
- 它采用Viewstamped Replication (VR)共识协议实现强序列化一致性。
- TigerBeetle的数据模型专为金融交易设计,仅存储账户和转账记录。
- 该数据库针对高并发场景(如央行清算系统或券商系统)进行优化。
- 通过批处理、IO并行化和硬件友好优化实现高性能。
- 提供针对内存、进程、时钟、存储和网络故障的强健容错模型。
- 采用确定性模拟测试(VOPR)验证各类故障下的安全性。
- 支持无缝升级——每个二进制文件包含多个版本。
- 定义明确的时间模型,使用逻辑/物理时间戳并保持严格单调性。
- 数据模型包含不可变账户和转账记录,含特定字段追踪余额。
- 所有操作均为原子性,不支持交互式或混合读写事务。
- Jepsen测试暴露出未初始化内存访问、查询结果丢失和磁盘故障崩溃等问题。
- 性能问题包括环形复制设计导致单节点故障时延迟升高。
- 当前缺乏单节点磁盘故障的安全恢复路径(恢复命令正在开发中)。
- 客户端设计会无限重试请求,增加了错误处理复杂度。
- 防御性编程包含断言机制,遇错即终止进程以确保安全。
- 未来工作包括改进超时语义、测试升级和成员变更功能。