软件架构是开发优秀软件的基础,同时也是同步团队认知、统一团队目标的重要方法。那么需要多长时间去设计?如何去评估架构的好坏?
Cassandra 是一个开源的、分布式的、无中心的、弹性可扩展的、高可用的、容错的、一致性可调的、面向行的数据库,它基于 Amazon Dynamo 的分布式设计和 Google Bigtable 的数据模型,由 Facebook 创建,在一些最流行的网站中得到应用。
这次带来的是分布式计算框架 Ray v2 版本的架构 设计中文详解,可能是目前关于 Ray 中文资料最详细的博文了。Ray 是一个为了给分布式提供通用的 API 发明出来的分布式计算框。
对着 Raft 原本的论文进行翻译并且深度解析 Raft 的原理及实现,与原文的可理解性目标类似,此译文也是出于更好地理解 Raft 算法这一目的。 因此,除了翻译时调整排版并加入若干小标题以方便网页阅读。
本文将从 1975 年开始梳理分布式一致性发展的脉络,从两军问题、拜占庭将军问题到 Paxos、Raft 逐渐深入。