从不询问任何人的锁:用模型检查器绕过共识
作者用模型检查器(model checker)为一个 NFS 共享锁设计证明其永远不会损坏数据或死锁。背景是一条跨多机的大 pipeline,各机挂载同一 NFS 导出做共享 scratch,写前必须先获取目录锁,读不受限。 关键点是锁本身不跟任何节点通信、不选举、不做心跳,靠形式化方法保证安全性,而非依赖共识协议。文末强调这是"在周二拒绝实现 Raft"之后才得到的方案。 全文偏工程实践,含可在线查看的规范(Caelum 文档),适合关注形式化验证、分布式锁设计、以及不想上 Raft 的团队。讨论点:NFS 上的锁在崩溃/网络分区时的语义边界、model checker 覆盖的假设是否足够、以及把"boring"当设计目标是否真可推广。