分布式系统原理 之4 Quorum 机制

分布式系统原理Quorum 机制Quorum 机制是一种简单有效的副本管理机制。本节首先讨论一种最简单的副本控制规则write-all-read-one,在此基础上,放松约束,讨论 quorum 机制。1. 约定为了简化讨论,本节先做这样的约定:更新操作(write)是一系列顺序的过程,通过其他机制确定更新操作的顺序(例如 primary-secondary 架构中由 prim...
摘要由CSDN通过智能技术生成

分布式系统原理

Quorum 机制

Quorum 机制是一种简单有效的副本管理机制。本节首先讨论一种最简单的副本控制规则write-all-read-one,在此基础上,放松约束,讨论 quorum 机制。

1. 约定

为了简化讨论,本节先做这样的约定:更新操作(write)是一系列顺序的过程,通过其他机制确定更新操作的顺序(例如 primary-secondary 架构中由 primary 决定顺序),每个更新操作记为 w i ,i 为更新操作单调递增的序号,每个 w i 执行成功后副本数据都发生变化,称为不同的数据版本,记作 v i 。假设每个副本都保存了历史上所有版本的数据。

2. Write-all-read-one

Write-all-read-one(简称 WARO)是一种最简单的副本控制规则,顾名思义即在更新时写所有的副本,只有在所有的副本上更新成功,才认为更新成功,从而保证所有的副本一致,这样在读取数据时可以读任一副本上的数据。

  • 假设有一种 magic 的机制,当某次更新操作 w i 一旦在所有 N 个副本上都成功,此时全局都能知道这个信息,此后读取操作将指定读取数据版本为 v i 的数据,称在所有 N 个副本上都成功的更新操作为“成功提交的更新操作”,称对应的数据为“成功提交的数据”。在 WARO 中,如果某次更新操作 w i 在某个副本上失败,此时该副本的最新的数据只有 v i-1 ,由于不满足在所有 N 个副本上都成功,则 w i 不是一个“成功提交的更新操作”,此时,虽然其他 N-1 个副本上最新的数据是 v i ,但 v i 不是一个“成功提交的数据”,最新的成功提交的数据只是 v i-1 。

  • 分析一下 WARO 的可用性。由于更新操作需要在所有的 N 个副本上都成功,更新操作才能成功,所以一旦有一个副本异常,更新操作失败,更新服务不可用。对于更新服务,虽然有 N 个副本,但系统无法容忍任何一个副本异常。另一方面,N 个副本中只要有一个副本正常,系统就可以提供读服务。对于读服务而言,当有 N 个副本时,系统可以容忍 N-1 个副本异常。

  • 从上述分析可以发现 WARO 读服务的可用性较高,但更新服务的可用性不高,甚至虽然使用了副本,但更新服务的可用性等效于没有副本。

  • WARO 牺牲了更新服务的可用性,最大程度的增强读服务的可用性。

    </
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值