开发者社区> 问答> 正文

MGR 跨机房的延迟是否一定会造成影响

MGR 由于在网络层使用了 Mencius 算法,即使是 single primary,写节点发送消息也需要等待其它节点的 skip_op,所以跨机房延迟会造成影响。

在源码里我看到 skip_op 是在 sweeper_task 这样一个进程中发出来的

假设有三个节点,在以下两种情况下是不是这样的:

如果 A 在很短的时间内发送两个消息:

  1. A 发送 msg1
  2. A 准备发送 msg4
  3. 等待 B 发送 msg2(skip_op)
  4. 等待 C 发送 msg3(skip_op)
  5. A 实际发送 msg4

A 隔了一段时间发送两条消息:

  1. A 发送 msg1
  2. B 的 sweeper_task 发现没有消息,发送 msg2(skip_op)
  3. C 的 sweeper_task 发现没有消息,发送 msg3(skip_op)
  4. A 发送 msg4

那是不是可以认为,如果写入频率不高(第二种情况),跨机房的延迟不会影响写入性能?

谢谢!

展开
收起
灰煮 2018-03-19 16:13:15 4311 0
1 条回答
写回答
取消 提交回答
  • 域名投资

    2019-07-17 22:02:17
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Session:弹性、高可用、可观测的应用交付网络产品更新 立即下载
Session:更加安全、可靠的数据中心网络产品更新 立即下载
可预期数据中心网络 立即下载