【翻译】分布式系统-天天时快讯

原文链接:Distributed systems


(相关资料图)

介绍

我希望有一本文本能够汇集许多最新分布式系统背后的理念 - 例如亚马逊的Dynamo, 谷歌的BigTable和MapReduce, Apache的Hadoop等等。

在这段文字中,我试图提供一个更易理解的分布式系统简介。对我来说,这意味着两件事情:介绍你需要了解的关键概念,以便在阅读更深入的文本时能够愉快度过,同时提供一个涵盖足够详细内容的叙述,以便你能够大致理解发生的事情,而不会陷入细节之中。现在是2013年,你拥有互联网,可以选择性地阅读你最感兴趣的主题。

在我看来,分布式编程的很大一部分是处理分布的两个后果的影响:

信息以光速传播独立的事物独立失败

换句话说,分布式编程的核心是处理距离(嗯!)和拥有多个事物(嗯!)。这些约束条件定义了可能的系统设计空间,我希望在阅读完本文后,你能更好地理解距离、时间和一致性模型的相互作用。

这段文字专注于分布式编程和系统概念,这些是您需要了解数据中心中商业系统所需的。试图覆盖所有内容是不可能的。您将学习到许多关键的协议和算法(例如,涵盖了该学科中最常引用的论文之一),包括一些新的令人兴奋的方式来看待最终一致性,这些方式尚未被收录到大学教材中,例如 CRDTs 和 CALM 定理。

我希望你喜欢它!如果你想说谢谢,请在Github(或者 Twitter)上关注我。如果你发现错误,请在Github上提交一个拉取请求。


1. 基础

第一章概述了分布式系统的高层次内容,介绍了一些重要的术语和概念。它涵盖了高层次的目标,如可扩展性、可用性、性能、延迟和容错性;以及这些目标是如何难以实现的,以及抽象和模型以及分区和复制是如何发挥作用的。

2. 抽象层次的上下

第二章深入探讨抽象和不可能性结果。它以尼采的一句名言开头,然后介绍了系统模型以及在典型系统模型中所做的许多假设。然后讨论了CAP定理并总结了FLP不可能性结果。然后转向CAP定理的含义之一,即人们应该探索其他一致性模型。随后讨论了一些一致性模型。

3. 时间和顺序

理解分布式系统的一个重要部分是理解时间和顺序。在我们无法理解和建模时间的程度上,我们的系统将会失败。第三章讨论了时间和顺序,以及时钟和时间、顺序和时钟的各种用途(例如向量时钟和故障检测器)。

4. 复制:防止分歧

第四章介绍了复制问题,并介绍了两种基本的执行方法。事实证明,大部分相关特性都可以用这个简单的描述来讨论。然后,从最不容错的方法(2PC)到Paxos,讨论了用于维护单一副本一致性的复制方法。

5. 复制:接受分歧

第五章讨论了具有弱一致性保证的复制。它介绍了一个基本的协调场景,其中分区副本尝试达成一致。然后,它讨论了亚马逊的Dynamo作为一个具有弱一致性保证的系统设计的例子。最后,讨论了两种关于无序编程的观点:CRDTs和CALM定理。

附录

附录包括了进一步阅读的建议。


*:这是一个谎言。Jay Kreps 的这篇文章详细阐述了。

推荐DIY文章
关注:沧海一声笑歌词完整版写了什么 跟着小编一起来看一看吧!
环球简讯:辽宁丹东旅游攻略汇总 以及旅行前注意事项一一告知
【世界新视野】谢霆锋主演的全部电影 《新警察故事》谢霆锋和成龙的搭配堪称经典
最好看的吸血鬼片介绍 你印象里的吸血鬼都是什么样子?_全球时讯
世界球精选!你的爱不离不弃歌词歌谱 这是收录于《神机会的风》中一首歌曲
马斯克个人简介及成功经历 他实现了私人公司发射火箭的壮举
精彩新闻

超前放送