前言
frangipani是一个很特殊很有意思的分布式文件存储系统,与GFS之类的架构大相径庭。它的思想很精简也很巧妙,本文将快速总结一下它的核心设计思想。
左手代码,右手年华
之前也细读过raft协议论文,项目里也独立实现过,不过做了mit 6.824的lab2之后,才发现有很多细节没有注意到,论文里figure 2的每一句话真的都需要完全毫无偏差的实现,不然肯定有某些corner case没考虑到。本文就分析一下mit 6.824课程lab2里raft协议实现的思路和细节,以及总结一些注意事项,代码可见个人github仓库https://github.com/wjqwsp/MIT-6.824-2018 ,最新的名为“raft”的commit里,用golang实现。后续还会在这个仓库里不断补全课程的其他实验代码。本文不会详细阐述raft的原理和细节,只关注实现和注意事项。