Redis部分再同步和同步复制

原文:http://antirez.com/news/45

作者:Antirez weblog
正如我在以前的博客文章中写道,目前我正在开发Redis Slave的部分再同步功能。
我们的想法是,我们有复制流的后备日志,可达到指定的字节数量(默认将是几百兆字节)。
如果一个Slave连接丢失时,它会再次建立连接,查看Master的RUNID 是否相同,并且要求从一个给定的偏移量继续。如果可能将继续复制,没有什么损失,而完全重新同步是没有必要的。否则,如果数据的偏移量在后备日志中不存在,将进行完全重新同步。
现在有趣的是,为了做到这一点,无论是Slave还是Master都必须知道一个全局的复制偏移量。
现在,如果我们提供命令来返回这个偏移量,客户端可以仅通过发送查询命令来简单地模拟同步复制,获取偏移量(想想MULTI/ EXEC如何做到这一点),然后向Slave做同样的事情。因为Redis的复制只有非常低的延迟,客户端可以简单地做一个乐观的“写,读偏移量,读Slave的偏移量”("write, read-offset, read-offset-on-slave"),并从Slave上读到的偏移量有可能已经做好继续的准备(或者,我们在暂停一会儿后再次读取)。
这可能是有用的东西,但我不知道如果我们从那开始是否能够建立更棒的东西,就是发送一种Redis命令,只要从至少N个连接的Slave中没有得到对读取复制偏移量的确认,就阻塞,并返回发生的时间及+OK。
当我们了解这是否有用及它的复杂度,我不确切它是否是可用的,但是从初步的分析看,实现快速可靠地...可能并非重要,听起来不错。

更多消息待续。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值