分布式系统:5.Replication
本文最后更新于:2022年3月15日 中午
5 Replication
5.1 Manipulating remote state
幂等性
由于网络错误导致ack丢失,重试引发多次数据库的修改
因此分布式系统需要考虑重复多余请求的情况,在崩溃恢复的分布式模型中,这就意味着需要记录每次请求。
另一种解决方法就是使请求具有幂等性:
- 幂等性就像集合的并操作,重复多少次都一样,只有执行和没执行的区别
墓碑
防止下图的情况:remove丢失,无法区分是否有过remove的情况
方法1:用逻辑时间比较事件大小(最后写入胜利 Last writer wins,但是引入了开销)
方法2:用tombstone标记被删除的记录
5.2 Quorums 法定人数
Quorum机制是“抽屉原理”的一个应用。定义如下:假设有N个副本,更新操作wi。在W个副本中更新成功之后,才认为此次更新操作wi成功。称成功提交的更新操作对应的数据为:“成功提交的数据”。对于读操作而言,至少需要读R个副本才能读到此次更新的数据。其中,W+R>N ,即W和R有重叠。一般,W+R=N+1
中心节点(服务器)读取R个副本,选择R个副本中版本号最高的副本作为新的primary。(read repair)
新选出的primary不能立即提供服务,还需要与至少与W个副本完成同步后,才能提供服务。
5.3 Replication using broadcast
如何在节点间复制?
如果复制更新操作是可交换的,则可以按照不同的顺序更新并最终到同一状态。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!