序三

有幸拜读了江峰的《分布式高可用算法》的样书,我非常高兴,此书出版恰逢其时。作为计算行业的从业成员,我在此分享一些个人心得。

分布式系统无处不在,在人们不直接感知的情况下,它已经成为支撑和构建我们现代生活方式的最基础的科学技术方法之一。我们使用的硬件设备(手机、PC、通信网络)、软件(社交购物办公应用、游戏)、服务(各类互联网服务)无一不是采用分布式的方式搭建的。在本质上,机器构成的系统与人类社会非常相似,单一实体的能力是有限的,当一个目标无法由单一实体来完成时,必然需要由多个人、多台机器构成的混合体来协同完成。这就是广义上的分布式系统。

在本书中,江峰带领读者完整梳理了分布协同必然需要面对的协同的复杂性。这些复杂性问题是触及本质且具有共性的科学问题。本书系统性地介绍了学术界与工业界的前辈提出的“如何看待(建模)和应对(算法)这些问题”的既有成果。这些成果沉淀在众多学者长期以来发表的论文中,体现在诸多涉及分布式系统的软件代码中。初学者乃至从业多年的研究人员往往都难以对这些成果形成系统性的认识。本书采用通俗易懂的方式有效地总结和归纳了这些成果,具有很好的指导意义,让读者有醍醐灌顶的感觉。在阐述这些科学问题时,本书刻意避免使用生僻的术语,以便让深奥的道理得以广泛传播,并让有关分布式技术的讨论、实现与应用不再是少数计算机理论科学家的专属。

当下,系统设计和软件技术深受软件开源文化的影响,让更多的人参与到复杂系统的搭建中也许更有现实意义,然而这背后也造就了一批“不关心算法”的软件架构师。倘若我们能对系统的科学本质和算法基础建立更深层次的领悟,那么不仅能提升自身能力,还能设计和构建更高质量的系统。

借此机会,我也把自己本该学习的一课补上。

廖恒 博士

华为Fellow、海思首席科学家