Skip to content

Latest commit

 

History

History
39 lines (20 loc) · 1.79 KB

Question.md

File metadata and controls

39 lines (20 loc) · 1.79 KB

阅读GFS论文时,可以尝试思考如下问题

  • 来自《大规模分布式存储系统》
1)为什么存储三个副本?而不是两个或者四个?
2)Chunk的大小为何选择64MB?这个选择主要基于哪些考虑?
3)GFS主要支持追加(append)、改写(overwrite)操作比较少。为什么这样设计?如何基于一个仅支持追加操作的文件系统构建分布式表格系统Bigtable?
4)为什么要将数据流和控制流分开?如果不分开,如何实现追加流程?
5)GFS有时会出现重复记录或者补零记录(padding),为什么?
6)租约(Lease)是什么?在GFS起什么作用?它与心跳(heartbeat)有何区别?
7)GFS追加操作过程中如果备副本(Secondary)出现故障,如何处理?如果主副本(Primary)出现故障,如何处理?
8)GFS Master需要存储哪些信息?Master数据结构如何设计?
9)假设服务一千万个文件,每个文件1GB,Master中存储的元数据大概占用多少内存?
10)Master如何实现高可用性?
11)负载的影响因素有哪些?如何计算一台机器的负载值?
12)Master新建chunk时如何选择ChunkServer?如果新机器上线,负载值特别低,如何避免其他ChunkServer同时往这台机器迁移chunk?
13)如果某台ChunkServer报废,GFS如何处理?
14)如果ChunkServer下线后过一会重新上线,GFS如何处理?
15)如何实现分布式文件系统的快照操作?
16)ChunkServer数据结构如何设计?
17)磁盘可能出现“位翻转”错误,ChunkServer如何应对?
18)ChunkServer重启后可能有一些过期的chunk,Master如何能够发现?