我希望问题不是太具体,或者像讨论一样。如果是这样,请关闭并评论我可以问的地方。
所以我开始阅读gfs文件,但由于我的背景不是面向操作系统,我很好奇它是如何处理文件的。
问题是: 接收数据(文件)的软件的一部分是使用处理文件的常规方式(如http://www.cprogramming.com/tutorial/cfileio.html),还是使用不同的方式?它是如何工作的?
答案 0 :(得分:0)
与Google文件系统中传统文件系统中的文件句柄类似的概念是块句柄。 Google文件系统中的每个文件都包含许多块,每个块由64位块句柄标识。
传统文件系统中的文件句柄在机器的内存空间中是唯一的。另一方面,谷歌文件系统是Linux文件系统的一个附加层,谷歌文件系统中的块句柄在所有块服务器中是全球唯一的。
执行读取操作时,应用程序向GFS主服务器发送请求以获取块元数据,然后再次将块元数据发送到主服务器以获取块句柄和位置。现在,应用程序知道块的位置,然后将块元数据发送到块服务器以获取块内容。
执行写入操作时,应用程序需要询问主服务器放置块的位置,然后将块内容发送到指定的块服务器。其余的操作是类似的。