Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
blockchain_guide
提交
9e7fc955
B
blockchain_guide
项目概览
OpenDocCN
/
blockchain_guide
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
B
blockchain_guide
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
9e7fc955
编写于
8月 05, 2016
作者:
Y
yeasy
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Updates consistency
上级
79f4b90b
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
15 addition
and
1 deletion
+15
-1
consensus/README.md
consensus/README.md
+3
-1
consensus/problem.md
consensus/problem.md
+12
-0
未找到文件。
consensus/README.md
浏览文件 @
9e7fc955
...
...
@@ -5,4 +5,6 @@
很显然,如果一个分布式的集群是无法保证处理结果的一致性的话,那任何建立于之上的业务系统都无法正常工作。
本章将介绍该问题的来源以及一些解决思路。
\ No newline at end of file
本章将介绍该问题的来源以及一些解决思路。
** 万法皆空,因果不空。 **
\ No newline at end of file
consensus/problem.md
浏览文件 @
9e7fc955
...
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录