Concurrency Google文件系统如何处理副本的写入失败?

Concurrency Google文件系统如何处理副本的写入失败?,concurrency,filesystems,distributed-system,scalable,Concurrency,Filesystems,Distributed System,Scalable,我正在阅读Google文件系统的论文,不知道它是如何处理副本的写入(而不是原子记录附加)失败的。如果返回success,那么它将等到下一次心跳,让主机获取世界的更新状态,检测损坏/过时的区块版本并删除区块。我猜想,只要客户机请求副本位置,主服务器就可以验证所有副本的有效性,以防止客户机获得过时/损坏的数据。这就是它处理副本写入失败的方式吗?无效块可分为两类:过时和损坏的校验和。它们以两种不同的方式进行检查 陈旧区块。chunk的版本不是最新的。主服务器在块服务器的常规心跳期间检查过时的块 损坏的

我正在阅读Google文件系统的论文,不知道它是如何处理副本的写入(而不是原子记录附加)失败的。如果返回success,那么它将等到下一次心跳,让主机获取世界的更新状态,检测损坏/过时的区块版本并删除区块。我猜想,只要客户机请求副本位置,主服务器就可以验证所有副本的有效性,以防止客户机获得过时/损坏的数据。这就是它处理副本写入失败的方式吗?

无效块可分为两类:过时和损坏的校验和。它们以两种不同的方式进行检查

陈旧区块。chunk的版本不是最新的。主服务器在块服务器的常规心跳期间检查过时的块

损坏的校验和。由于不同的副本可能是合法的,因此不保证GFS中的副本是相同的。此外,出于性能考虑,校验和是在块服务器本身而不是主服务器上独立执行的

校验和可以分两个阶段进行检查:

  • 当客户端或其他区块服务器请求区块时
  • 当区块服务器处于空闲期时,它们会扫描并验证非活动区块,以避免损坏的区块被视为有效副本
  • 如果校验和损坏,区块服务器将向主机报告该问题。主服务器从具有正常副本的其他区块服务器克隆副本。之后,主机指示报告问题的区块服务器删除区块

    回到您的问题,GFS如何处理副本写入失败

    如果在复制过程中遇到任何错误,则向客户端报告突变失败。客户端必须处理错误并重试变异。不一致的区块将在区块服务器中的常规扫描期间被垃圾收集