提交 9e7fc955 编写于 作者: Y yeasy

Updates consistency

上级 79f4b90b
......@@ -5,4 +5,6 @@
很显然,如果一个分布式的集群是无法保证处理结果的一致性的话,那任何建立于之上的业务系统都无法正常工作。
本章将介绍该问题的来源以及一些解决思路。
\ No newline at end of file
本章将介绍该问题的来源以及一些解决思路。
** 万法皆空,因果不空。 **
\ No newline at end of file
......@@ -22,6 +22,18 @@
* 一致性(Consensus):不同节点最终决策的结果应该相同;
* 合法性(Validity):决策的结果必须是其它进程提出的提案。
### 带约束的一致性
做过分布式系统的读者应该能意识到,绝对理想的一致性很难达成。除非不发生任何故障,所有节点之间的通信无需任何时间,这个时候其实就等价于一台机器了。实际上,越强的一致性要求往往意味着约弱的实践性能。
很多时候,人们发现对一致性可以适当放宽一些要求,在一定约束下实现一致性,从弱到强分别有如下几种:
* 顺序一致性([Sequential Consistency](https://en.wikipedia.org/wiki/Sequential_consistency)):Leslie Lamport 1978 年提出,是一种较弱的约束,保证所有进程自身执行的实际结果跟指定的指令顺序一致。例如,某进程先执行 A,后执行 B,则实际得到的结果就应该为 `A, B`。顺序一致性实际上只限制了各进程内指令的偏序关系,不在进程间进行排序。
* 线性一致性([Linearizability Consistency](https://en.wikipedia.org/wiki/Linearizability)):Maurice P. Herlihy 与 Jeannette M. Wing 在 1990 年共同提出,在顺序一致性前提下加强了进程间的操作排序,形成唯一的全局顺序(系统等价于是顺序执行,所有进程看到的顺序都一致),是很强的原子性保证。
### 一致性的理论界限
搞学术的人都喜欢对问题先确定一个界限,那么,这个问题的最坏界限在哪里呢?很不幸,一般情况下,分布式系统的一致性问题无解。
当节点之间的通信网络自身不可靠情况下,很显然,无法确保实现一致性。但好在,一个设计得当的网络可以在大概率上实现可靠的通信。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册