1. 思考GFS是如何实现设计目标的,包括performance, scalability, reliability, and availability?
2.如何解决组件可能出现的任意故障?
A:constant monitoring(日常监控), error detection(故障检测), fault tolerance(错误冗余), and automatic recovery(自动恢复)。
3.GFS是如何保证数据一致性的?
4.GFS是如何优化append操作的?
5.GFS的两种典型读操作。
Large streaming reads(1M左右的数据) and small randon reads(几KB数据). 想象一下微博的读操作就是如此。用户浏览时是大量的流数据,如果随机察看某个评论就是微量的随机读操作。
6.大量的并发用户对同一个文件进行append操作,如何以最小的代价实现同步并保证每一个用户操作的atomicity?
7.Master所包含的文件系统的元数据有哪些?
This includes the namespace, access control information, the mapping from files to chunks, and the current locations of chunks.
It also controls system-wide activities such as chunk lease management, garbage collection of orphaned chunks, and chunk migration between chunkservers.
8.理解GFS client同master和chuckserver之间是如何通信的?
Client提供file name和Byte offset, 由于chuck size是固定的64M, 所以Byte offset / chuck size就得到chuck index。
9. Master所存储的元数据类型
The file and chunk namespaces, the mapping from files to chunks, and the locations of each chunk’s replicas。
10. 一致性模型中的defined 和 consistent but undefined的区别是什么?