GFS
Questions
- master 和chunk之间是怎么互相自动发现的?
- master 和chunk之间心跳信息具体内容是啥
- master信息存在哪儿?master挂了?集群都挂?
- Cache怎么解决失效的问题?
- 谁负责写入多个副本?
- 副本的一致性是怎么保证的
- Atomic Append是咋搞的
- 写入流程是怎样的?
ChunkSize
chunksize 64MB的好处
- 减轻client 和master的通信.
- client和chunk server长时间通信,减少需要和多个chunk server网络通信
缺点:
- 小文件只有一个或几个chunk,容易造成成为热点
Metadata
master 相当于一个路由表, master主要存储三种metadata
- the file and chunk namespace
- mapping from files to chunk
- location of each chunk replica 这三个信息都存储在内存中,前两个信息会通过operation log, 持久化存储到磁盘上 信息3没有存在磁盘上,master询问每个chunk server, 来构建这个信息.
写入流程
lease and mutation order
如果修改的区域跨chunk了,上面的lease机制无法保证对多个chunk的修改,有一致的修改顺序。
Atomic record append
这块没怎么看明白,好像是append时候,如果primary发现chunk size不够写,就直接先将当前chunk pad填满,并且
让secondary也pad,填充, 然后让client重试,为了避免过多的碎片,chunk append的record size 现在在maxSize/4
这样就避免了跨chunk写
snapshot
Master operation
- namespace namespace operation
- manages chunk replicas
- placement decisions