2

我正在阅读 GFS 论文但无法理解一点,master 是否也为每个文件副本维护 64kb 的元数据?假设主人的内存是 8 GB,我存储 1000 个文件,每个文件 1 kb,它将占用多少内存?如果复制因子为 3。

4

2 回答 2

0

不,每个副本的主要元数据仅在块服务器的内存上。Master 仅存储 2 种类型的块元数据。

  1. 每个 64 MB 块的元数据少于 64 字节的块句柄
  2. HeartBeat 在块服务器和主服务器之间维护的每个块的位置。

这是论文的详细信息。

master 存储三种主要类型的元数据:文件和块空间,从文件到块的应用,以及每个块的副本的位置。所有元数据都保存在主机的内存中。

主服务器不会永久记录哪些块服务器具有给定块的副本。它只是在启动时轮询块服务器以获取该信息。此后,master 可以保持自己处于最新状态,因为它控制所有块放置并使用常规 HeartBeat 消息监视块服务器状态。

最重要的一句话:</p>

块服务器对它在自己的磁盘上拥有或不拥有哪些块拥有最终决定权。

于 2021-04-24T04:07:19.727 回答
0

GFS 为每个 64 MB 块维护少于 64 字节的元数据,而不是为单个文件维护。每个副本花费相同的元数据开销。因此,1000 个文件占用多少内存取决于这些文件总共有多少块。

于 2017-05-16T16:25:21.493 回答