为什么要读GFS的论文?
- MapReduce用的文件系统。
- 6.824的很多主题在本文中出现
- 实现细节——从应用程序(校验、去重)到网络传输(就近线性接力传输)的各种细节
- 故障容忍
- 性能——规模化(scale)
- 一致性——本文是对目录树提供强一致性,对文件内容提供弱一致性。
- trade-off:拿
一致性
换取简单
和高性能
。以及一些设计上的选择。
- 影响深远
- 很多其他系统用GFS (e.g., Bigtable, Spanner @ Google)
- HDFS (Hadoop Distributed File System) 也是参照 GFS 设计的。
作者想达成什么目标?
- 用廉价的大众商品级硬件打造一个高可用的文件系统
- 应对节点故障,因为节点故障是常态。
- 侧重读写的持续的流量,而不是较小的延迟。
- 它是针对特定应用(比如MapReduce)开发的文件系统:这些应用的特点是,读操作常常是顺序地读大量内容(也有随机位置读少量数据),写操作常常是append(在文件末尾追加)记录。
两种节点
- GFS把文件分成一个个64M大小的"大块"(chunk)来存储。每个chunk都有唯一的ID
Master节点
: 为了设计简单,只有一个master节点。m