前言
写作是一件痛苦的事情,这不仅仅是自己思考的模态转换,更是对自身学术认知的重新梳理。大概在12年前,我还是一个学生,在某次学术会议上遇到了Leslie Lamport博士。那时他已经70岁高龄,脸上沟壑纵横,但眼神仍然犀利,对探讨的话题反馈依旧敏锐。当时是我第一次听到Paxos Island的故事,并从此进入了分布式一致性协议优化的“深渊巨口”。时间如白驹过隙,十多年过去了,我们在分布式一致性协议上做了各种工作,有些是对数学模型的探讨,有些是对具体实现的优化,还有一些是人生哲学上的引申。我们想留下这些心得体会,并分享给更多人。
本书主要围绕Raft和Paxos两个协议进行阐述。与其他相关图书不同的是,书中加入了大量的实践实训环节,引导读者从零到一构建一种强一致性协议并实现其运行框架。这种技术是硬核的,是很多互联网企业急需的,是值得学习的。这与我们成书的起源相关。2017年,我回国开始创办泛在数据处理与优化实验室,开始只有几个本科生跟着我做一些超出他们学习范围的工作。其中就有本书的另一作者——柳杰。年轻人对未知知识是如此渴望,但是对复杂数学模型又是如此畏惧。在共同协作下,我们复现了Raft(Paxos协议的一种变形)、Paxos,甚至提出了更加泛化、更简单好用的eRaft一致性协议及其实现,并且eRaft被收录于斯坦福大学的一致性协议公开库中。整体工作共用了大概5年时间。在此基础上,我们可以对分布式数据库,特别是分布式数据库函数级服务,实现更好更宽泛的支持。希望本书可以帮助更多学生,实现复杂的一致性协议,同时对学生学习分布式系统、分布式数据库等高阶知识起到帮助作用。
较早的时候,机械工业出版社的编辑找到我,希望我写一本关于数据库先进技术的书。我答应了,决定把这本书写出来。在编写本书的过程中,崔傲、谭国龙、姜文静、向紫芊、肖欣雨等同学帮忙搜集资料,黄嘉诚、刘必勇、吴伟正等同学帮忙构建系统,吴伟正、曾焘、舒磊明、许可、李江波、李冰雁、孙珍龄等同学帮忙完成协调、编纂、校对、验证代码等一系列烦琐的工作。在成书的过程中,得到了中国人民大学杜小勇老师,上海交通大学过敏意老师、陈全老师、李超老师、陈海波老师、王肇国老师,中国科学技术大学李诚老师,国防科技大学董德尊老师,北京理工大学王国仁老师、袁野老师,北京航空航天大学马帅老师等各位师长的建议和指导,在此一并感谢。
表文云,“丽文幽质,唯道可度,欢同陨世,大道不称”。共勉之。
徐子晨
2023年4月20日