TigerBeetle Blog

2 篇内容

工程实践TigerBeetle Blog

High-Throughput OLTP in Three Simple Steps

文章以经典银行存取款 OLTP 负载为例,说明从通用 SQL 数据库迁移到 TigerBeetle 时,逐行照搬模型会严重损失性能。核心建议有三条:用双式记账转账和聚合账户替代多行更新与历史表;利用客户端自动批处理合并请求(最多 8189 条操作);用近似单调递增的 TBID 替代随机 UUID 以加速幂等检查。文中称单客户端大 batch 可达约 45.4 万事务/秒(90.9 万转账/秒),而关系数据库存储过程约 7000 事务/秒,差距来自避免行锁、批处理与服务端并行 I/O。作者也说明对比仅为数量级参考,且方案依赖应用与数据库协同设计。

推荐收录。文章不是泛泛介绍产品,而是给出可验证的数据建模、自动批处理和单调 ID 三条具体优化手段,并用约 45 万 TPS 对比 7 千 TPS 说明高竞争 OLTP 的架构差异;适合后端、数据库和系统设计读者理解批处理、幂等键与应用/数据库协同设计。需注意基准来自厂商且调优经验不对等,但技术取舍和性能分析仍可迁移。

工程实践TigerBeetle Blog

Protocol-Aware Deterministic Simulation Testing

本文介绍了TigerBeetle数据库在确定性模拟测试(DST)中引入协议感知(Protocol-Aware)的方法,从系统内部视角验证共识协议与存储引擎的安全性和活性不变量。作者对比了Jepsen式黑盒生成测试和Antithesis式确定性虚拟机的局限,指出它们只能通过用户可见API从外向内测试,无法深入协议内部。TigerBeetle利用逻辑与物理双重确定性,使集群副本达到字节级一致,并在VOPR模拟器中运行真实代码。协议感知DST允许对每个副本的WAL一致性、存储确定性(如Manifest和物理块校验)以及更深层的活性进行断言,例如确保无需协调时副本不会进入recovering_head状态,以及能从集群中任意副本修复缺失数据块。文章通过大量代码片段展示具体实现,并讨论了这种测试方法对快速复现复杂交错场景、调试协议级优化和确保长期可靠性的价值。

推荐收录,因为本文展示了如何将确定性模拟测试从系统级黑盒推进到协议感知的白盒深度验证,提供了具体的实现思路和代码依据,对从事分布式系统、数据库内核或可靠性工程的读者具有直接参考价值。其分层不变量检查方法和物理确定性设计可迁移到其他基础设施系统中,是测试方法论与工程实践结合的优质案例。