无主复制系统(2)-读修复和反熵

简介: 复制模型应确保所有数据最终复制到所有副本。在一个失效节点重新上线后,如何追上错过的写入?Dynamo风格的数据存储系统常用机制

复制模型应确保所有数据最终复制到所有副本。在一个失效节点重新上线后,如何追上错过的写入?Dynamo风格的数据存储系统常用机制:


① 读修复(Read repair)

当客户端并行读取多副本时,可检测到过期的返回值。如图-10,User 2345获得来自R3的版本6,而从副本1、2得到版本7。客户端判断可知:副本3是过期值,然后将新值写入该副本。这适用于读密集场景。


② 反熵过程(Anti-entropy process)

一些数据存储有后台进程,不断查找副本之间数据差异,将任何缺少的数据从一个副本复制到另一个副本。不同于基于主节点复制的复制日志,该反熵过程不保证任何特定顺序的复制写入,并且会引入明显的同步滞后。


并非所有系统都实现了这俩方案。如Voldemort目前无反熵过程。若无反熵过程,由于【读修复】只在发生读取时才可能执行修复,那些很少访问的数据可能在某些副本中已丢失而无法再检测到,从而降低写的持久性。

目录
相关文章
|
4月前
|
算法
分布式锁设计问题之重建节点锁信息时要分为多个阶段如何解决
分布式锁设计问题之重建节点锁信息时要分为多个阶段如何解决
|
SQL 关系型数据库 数据库
记一次程序 Bug 导致数据删除的恢复过程
使用RDS、DMS进行数据恢复实践
1004 0
|
算法 开发工具 git
多主复制下处理写冲突(3)-收敛至一致的状态及自定义冲突解决逻辑
主从复制模型的数据更新符合顺序性原则:若同一字段有多个更新,则最后一个写操作决定该字段的终值。
140 0
|
安全 关系型数据库 MySQL
为什么延迟复制适用于备库数据的紧急恢复?底层原理是什么?
为什么延迟复制适用于备库数据的紧急恢复?底层原理是什么?
124 0
SAP QM初阶-执行事务代码QP02维护检验计划的时候不能为检验特性指派取样策略
SAP QM初阶-执行事务代码QP02维护检验计划的时候不能为检验特性指派取样策略
SAP QM初阶-执行事务代码QP02维护检验计划的时候不能为检验特性指派取样策略
|
关系型数据库 MySQL 缓存
[缺陷分析]半同步下多从库复制异常
本文分析的缺陷是MySQL bug#89370,其主要的现象是:配置半同步(复制)到多个从库,部分从库在一段时间内无法复制数据,但所有复制状态均正常。
|
SQL 数据库 虚拟化
备份链中断导致差异备份报错案例
原文:备份链中断导致差异备份报错案例   最近一台SQL Server服务器部署SQL Server Backup后,发现每晚的差异备份老是失败,报如下错误:   Msg 3035, Level 16, State 1, Line 1 无法执行数据库"xxxx" 的差异备份,因为不存在当前数据库备份。
1417 0