乐观复制算法

来源:互联网 发布:方天画戟淘宝 编辑:程序博客网 时间:2024/05/17 03:59

     本文是关于乐观复制算法的一篇综述性文章。对于弱一致性,乐观复制的研究主要是因为三年前我们想实现一款与Dropbox类似的软件。在过去的三年间,我们完成了我们的工作,同时也解决了期间遇到的许多问题。在解决这些问题中,个人觉得《Replication: Optimistic Approaches》(Yasushi Saito, Marc Shapiro 2004)这篇文章对我们的帮助最大,所以自己抽空将全文翻译了出来。

​下面我先给出全文的大纲,全文一共有70多页。前60是对原文的翻译,后10多页(附件B和附件C)是自己的一些理解和思考。


乐观复制算法

目录

1.介绍...1

1.1悲观复制算法和他们的局限...2

1.2乐观复制:总述与优点...3

1.3乐观复制:目标和挑战...5

1.3.1一致性...5

1.3.2内容质量保证...8

1.3.3扩展性...8

1.4路线图9

2.采用乐观复制技术的应用...11

2.1互联网服务...11

2.1.1DNS:广域网上的缓存和镜像...11

2.1.2Usenet:广域网信息交换...12

2.2移动数据系统...13

2.3 CVS:计算辅助协作...13

2.4总结14

3.基本定义...15

3.1对象15

3.2一致性和冲突...16

3.3冲突处理技术的分类...18

4.单Master系统...20

5.多master的state-transfer系统...21

5.1使用Thomas写规则的更新传播与冲突处理...21

5.2在State-transfer系统中检测与解决冲突...23

5.2.1 Two-Timestamp算法...23

5.2.2版本向量...25

5.2.3 State-transfer系统的冲突解决...26

5.3支持大对象...26

5.4在空间上的开销...27

6.多Master的operation transfer系统...29

6.1构造一个日志...31

6.2使用Timestamp向量的更新传播...32

7.Operation-transfer系统中的调度和冲突处理...35

7.1语法操作调度...36

7.2语义操作调度...37

7.2.1挖掘交换特性...37

7.2.2典范操作排序...37

7.2.3 IceCube中的语义调度...38

7.3操作转换...39

7.4解决冲突操作...40

7.5提交操作...41

7.5.1 Ack Vectors.41

7.5.2 Primary Commit Protocol42

7.5.3 Quorum Commit Protocal42

8.保证内容质量...44

8.1保证访问请求间的因果关系...44

8.1.1明确的因果依赖...45

8.1.2 Session保证...45

8.2限制不一致...47

8.3用概率技术来降低不一致...48

9.扩展乐观复制系统...49

9.1评估冲突比例...49

9.2通过控制通信拓扑结构来扩展系统...50

9.3推送技术...51

9.3.1 Blind Flooding.52

9.3.2连接状态监控技术...52

9.3.3时间戳矩阵:估计远端节点的状态...53

9.4添加和移除master节点...54

10.总结...56

10.1对比乐观复制策略...56

10.2算法总结...57

附件A.1 Happen-before 关系...60

附件B-Version vectors算法介绍和不足...61

附件C-一致性模型...64

1.相互一致性...64

2.强一致性66

3.弱一致性67

3.1 Read-your-write.68

3.2 Session consistency.69

3.3单调读一致性Monotonic read consistency.70

3.4单调写一致性Monotonic write consistency.71

3.5因果一致性Causal consistency.72

4.最终一致性...72




来自为知笔记(Wiz)



原创粉丝点击