分布式存储 HDFS 与 GFS 的设计差异
「后端分布式系列」前面关于 HDFS 的一些文章介绍了它的整体架构和一些关键部件的设计实现要点。 我们知道 HDFS 最早是根据 GFS(Google File System)的论文概念模型来设计实现的。 然后呢,我就去把 GFS 的原始论文找出来仔细看了遍,GFS 的整体架构图如下: HDFS 参照了它所以大部分架构设计概念是类似的,比如 HDFS NameNode 相当于 GFS Master,HDFS DataNode 相当于 GFS chunkserver。 但还有些细节不同的地方,所以本文主要分析下不同的地方。 写入模型 HDFS 在考虑写入模型时做了一个简化,就是同一时刻只允许一个写入者或追加者。 在这个模型下同一个文件同一个时刻只允许一个客户端写入或追加。 而 GFS 则允许同一时刻多个客户端并发写入或追加同一文件。 允许并发写入带来了更复杂的一致性问题。 多个客户端并发写入时,它们之间的顺序是无法保证的,同一个客户端连续追加成功的多个记录也可能被打断。 这意味着一个客户端在连续写入文件数据时,它的数据最终在文件中的分布可能是不连续的。 所谓一致性就是,对同一个文件,所有...