客户端写复制协议要求客户端部署复制逻辑代码实现数据复制,并且所 有客户端能够并发地执行写入请求。由于不像基千主复制协议那样,由主节点负责请求的顺序性,因此并发冲突是客户端写复制协议的挑战,它只适合并发冲突较少的场景。为了解决并发冲突,客户端写复制协议提供了以下 2种方案。
1. 主动复制 ( ActiveReplication)。为了控制客户端并发冲突,客户端指定专用的协调节点生成序列号,由该协调节点负责为所有客户端请求 生成序列号,序列号就是逻辑时钟( LogicalClock) 技术,从而可以保证所有请求的先后顺序。但是该方法 存在扩展性问题,因为所有客户端的请求都需要向它申请序列号,所以非常容易形成系统瓶颈。
2.投票复制 ( Quorum-basedReplication)。投票是解决冲突的机制,定义系统的副本总数为 N, 读该对象时成功返回的副本数为读投票 RQ,写该对象时成功返回的副本 数为写投票 WQ,那么必须满足如下条件。 条件 l: RQ+ WQ>N 条件 2: Wq> N/2 由于RQ+ WQ> N,表示读、写存在重叠,因此能够读到最新数据。同时 WQ> N/2,表示写入超过一半成功 ,因此在副本节点出现故障后 仍然能够让系统最终更新为最新值。如果写入冲突少,则投票复制非常好;如果冲突较多,则将带来复杂的冲突处理,并影响系统性能。
资料来源:《对象存储实战指南》
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。