微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

① 读修复(Read repair)

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

② 反熵过程(Anti-entropy process)

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐