用途:该指南介绍如何按 TigerBeetle 与 Joran Dirk Greef 的风格,对分布式系统开展确定性仿真测试,目标是获得传统测试难以提供的正确性保证。
主要能力:控制所有非确定性来源(时间、网络、磁盘 I/O、随机数);使用带种子的 PRNG 使随机决策可复现;把时间作为可注入参数而非直接读真实时钟;模拟网络分区、消息丢失、重复、乱序与延迟,以及存储读写错误、位翻转、撕裂写与崩溃;在每次状态转换后检查不变量;用单一 seed 精确回放任何失败场景;以时间压缩方式在分钟内模拟数年运行。资料还给出 VOPR(Viewstamped Operation Replication Tester)仿真循环结构,以及时间抽象、确定性 PRNG、模拟网络、模拟存储和仿真 harness 的 Zig 代码模式,倡导单线程确定性仿真、注入式时间、模拟 I/O、不变量断言与基于种子的复现。
使用方式:资料未提供安装命令或具体调用步骤;可按文中给出的类型与函数签名(如 PRNG.init、SimulatedNetwork.send、Simulator.run)组织仿真代码。
适用场景:分布式系统、共识协议、存储与网络故障场景的正确性测试。
限制:面向仿真模式的代码不得调用真实系统时间或真实网络/磁盘 I/O,不应依赖线程调度顺序,也不能因“跑过一千次”就假定正确;必须纳入故障注入并覆盖罕见事件。具体命令、版本与性能数据资料暂未提供。