SOSP'03-The Google File System #12
Replies: 7 comments
-
GFS为面向大规模分布式数据密集型应用设计和实现的可扩展的分布式文件系统,在大量的廉价商用硬件机器上运行并提供容错机制和聚合性能。 |
Beta Was this translation helpful? Give feedback.
-
IntroductionDifferent Points in The Design Space
|
Beta Was this translation helpful? Give feedback.
-
Design OverviewAssumptions
InterfacesPOSIX 标准的文件接口 + snapshot + record append Architecture
Single Master
Master 上的信息不太多,Client 会 batch 和 cache 请求,相对简单。可能需要解决单点失效的问题。 Chunk Size默认 64 MB。大 chunk size 减少 metadata ,减少 client 和 master 的交互次数,减少 client 和 chunkserver 的连接数量。但是:
Metadata
前两者写 log 以做持久化,重新启动后重放。后者通过 lease 来保证一致性,通过和 chunk sever 的 HeartBeat 来更新。 In-Memory Data Structures所有 metadata 全部在内存中,好处在于快,坏处在于 master 的内存大小限制了 gfs 的容量。解决办法:加内存。 Chunk Locations通过 HeartBeat 来更新。
Operation Log
Consistency ModelGuarantees by GFS元数据的修改是 atomic 的。
看起来就是没什么并发控制,不太喜欢并发写。不过这个 Serial 的 Record Append 还会 inconsistent 是不是太过分了点。 Implications for Applications这里建议应用自己写校验码、标识重复项来避免读到错误的数据。其实就是 GFS 对并行的写不太提供什么一致性,所以应用得自己维护。 |
Beta Was this translation helpful? Give feedback.
-
System InteractionsLeases and Mutation Order修改应用于所有 replica。其中一个 primary replica 会持有一个来自 master 的 lease,其余所有 replica 跟随 primary replica。 写入时:
Data Flow数据流和控制流分开,可以充分利用带宽。 Atomic Record Appends相较于 write,Record Append 提供了更好的一致性保证(虽然可能不一致,但 at least append once),以及不用自己 manage offset。 Snapshotcow copy。通过 lease 和 rc 做 cow。 |
Beta Was this translation helpful? Give feedback.
-
Master Operations
Namespace Management and LockingGFS 提供目录层级的锁,如 Replica PlacementCreation, Re-replication, Rebalancing一些细节讨论,感觉可以略过。 Garbage CollectionMechanismlazy deletion,先软删除,然后删除元数据,最后通过 heartbeat 通知 chunkserver 删除 chunk。 Discussion
In our experience, the main disadvantage is that the delay sometimes hinders user effort to fine tune usage when storage is tight. Stale Replica Detectionchunk replica 带 version number,stale 的会被 gc。 |
Beta Was this translation helpful? Give feedback.
-
Fault tolerance and diagnosisHigh AvailabilitFast RecoveryChunk Replication多副本。提到可以让 gfs 自己做奇偶校验,类似 raid。 Master Replicationmaster 的 log 是有副本的。master 寄掉之后外部监控系统可以重启一个。 其实 master 有只读副本来着,不算完全的 single master。 Data Integritychunkserver 对 chunk 自带校验和。 Diagnostic Tools日志相关。 |
Beta Was this translation helpful? Give feedback.
-
Measurements
Micro-benchmarks读
想知道这个 10% hit rate 怎么算出来的。
效率 75%-80%,随 client 增多,多个 client 从一个 chunkserver 读的概率增大,所以效率会略下滑。 写
写的碰撞会更严重。
Record Append
效率低于 50%。实际应用中每个 client 会同时 append 多个文件,因此在某个文件 stall 的时候可以 append 其他文件,不会损失速度。 |
Beta Was this translation helpful? Give feedback.
-
https://storage.googleapis.com/gweb-research2023-media/pubtools/4446.pdf
Beta Was this translation helpful? Give feedback.
All reactions