开发者社区 问答 正文

GFS是如何保证一致性的?

GFS是如何保证一致性的?

展开
收起
kun坤 2020-04-23 16:04:32 1524 分享 版权
1 条回答
写回答
取消 提交回答
  • GFS只 保证一次原子写入,数据已经在一个副本落盘。在经过一定时间后,所有的副本数据会一致。

    假设出现网络分区,导致脑裂(split brain,存在两个primary)。出现这种情况,GFS引入60秒的租约时间,出现primary不能连通,就必须等待超时(剩余的时间client可以通过cache的primary信息计算)。

    当Primary响应客户端已经成功append 记录,随后客户端立即进行读取,看到的应是最新的文件。(注意:不是所有的客户端都能看到最新的文件,GFS是弱一致性。需要等待时间同步到其他节点,通过“就近”复制.)

    2020-04-23 16:04:41
    赞同 展开评论
问答地址: