知识卡片

Pipeline不是共识

普通读书笔记卡 · 1718.a

内容

HDFS pipeline 让客户端把 packet 依次传给多个 DataNode,提高传输效率;一致性仍依赖租约、代戳、block 状态和恢复流程。发散:复制链路能提升吞吐,但不能自动解决脑裂和失败后的“谁说了算”。

参考来源

- 位置:《分布式系统与一致性》第3章《开源的文件系统HDFS》"3.2.2 pipeline写入"及后续恢复流程一节(源文件:_epub-src/OEBPS/Text/chapter7.xhtml) - 结论依据:原文说明pipeline把数据分成packet"按顺序发送每个包,包发出后,不必等待包的回复即可发送下一个包"提高传输效率,而一致性的保障另由租约、代戳与pipeline/lease/block recovery机制承担("如果DN自己检查到错误……HDFS将客户端处理这些错误的过程称为管道恢复")。 - 原始内容:在pipeline建立后,客户端将要发送的数据分成多个包(packet),按顺序发送每个包,包发出后,不必等待包的回复即可发送下一个包……如果在写入过程中出现任何错误,那么HDFS会处理各种错误……试图从错误中恢复(recovery),通过恢复过程保证数据的一致性。