我们近期针对阿里发布的ParallelRaft协议,做了进一步的规约与(初步)验证。论文投稿到《软件学报》专刊。论文初稿与相关代码链接见文末。
论文摘要
PolarFS 是阿里巴巴开发的分布式文件系统,它实现了分布式共识协议 Raft 的一种变体,称为 ParallelRaft.ParallelRaft 突破了 Raft 中顺序提交、顺序执行的限制,允许状态机乱序执行用户命令。然而,文献表明,ParallelRaft 并未开源,仅有简短的文字描述,更缺乏严格的形式化规约。更进一步,它的正确性也尚未经过必要的数学论证或形式化检验。本文旨在为 ParallelRaft 提供严格的形式化规约并证明其正确性。
具体而言,本文的主要贡献包括:首先,为了理清 ParallelRaft 与 Raft 之间的关系,我们提出了允许乱序提交、顺序执行的 ParallelRaft-SE(Sequential Execution)协议,并建立了从ParallelRaft-SE 到 Multi-Paxos 的精化关系。其次,我们发现现有的 ParallelRaft 描述忽略了可能会违反状态一致性的"幽灵日志"问题。因此,我们在 ParallelRaft-SE 的基础上提出了 ParallelRaft-CE(Concurrent Execution)协议。ParallelRaft-CE限制了 ParallelRaft-SE 在乱序提交阶段的并行度,从而避免了"幽灵日志"问题。我们证明了 ParallelRaft-CE 的正确性。最后,我们使用 TLA+给出了 ParallelRaft-SE 和 ParallelRaft-CE 的形式化规约,并使用 TLC 模型检验工具验证了从 ParallelRaft-SE 到 Multi-Paxos 的精化关系以及 ParallelRaft-CE 的正确性。
相关信息
- TLA+代码仓库
- 论文初稿见:/doc/2020.8-jos.pdf
- 阿里ParallelRaft论文信息:
- Wei Cao, Zhenjun Liu, Peng Wang, Sen Chen, Caifeng Zhu, Song Zheng, Yuhui Wang, and Guoqing Ma. 2018. PolarFS: an ultra-low latency and failure resilient distributed file system for shared storage cloud database. Proc. VLDB Endow. 11, 12 (August 2018), 1849–1862. DOI:https://doi.org/10.14778/3229863.3229872
注:题图来自Raft原始论文。
来源:oschina
链接:https://my.oschina.net/u/4324904/blog/4555544