开发者社区> 问答> 正文

什么是客户端写复制协议?

什么是客户端写复制协议?

展开
收起
游客qunztrp5ggyqy 2021-12-09 17:45:59 736 0
1 条回答
写回答
取消 提交回答
  • 客户端写复制协议要求客户端部署复制逻辑代码实现数据复制,并且所 有客户端能够并发地执行写入请求。由于不像基千主复制协议那样,由主节点负责请求的顺序性,因此并发冲突是客户端写复制协议的挑战,它只适合并发冲突较少的场景。为了解决并发冲突,客户端写复制协议提供了以下 2种方案。

    1. 主动复制 ( ActiveReplication)。为了控制客户端并发冲突,客户端指定专用的协调节点生成序列号,由该协调节点负责为所有客户端请求 生成序列号,序列号就是逻辑时钟( LogicalClock) 技术,从而可以保证所有请求的先后顺序。但是该方法 存在扩展性问题,因为所有客户端的请求都需要向它申请序列号,所以非常容易形成系统瓶颈。

    2.投票复制 ( Quorum-basedReplication)。投票是解决冲突的机制,定义系统的副本总数为 N, 读该对象时成功返回的副本数为读投票 RQ,写该对象时成功返回的副本 数为写投票 WQ,那么必须满足如下条件。 条件 l: RQ+ WQ>N 条件 2: Wq> N/2 由于RQ+ WQ> N,表示读、写存在重叠,因此能够读到最新数据。同时 WQ> N/2,表示写入超过一半成功 ,因此在副本节点出现故障后 仍然能够让系统最终更新为最新值。如果写入冲突少,则投票复制非常好;如果冲突较多,则将带来复杂的冲突处理,并影响系统性能。

    image.png

    资料来源:《对象存储实战指南》

    2021-12-10 11:16:54
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载