【问题标题】:Why Google File System divide files into Chunks?为什么 Google File System 将文件分成 Chunks?
【发布时间】:2013-08-05 09:52:37
【问题描述】:

在论文The Google File System 第 2.3 节中,它说:

文件被分成固定大小的块。

但不要说为什么。这样做有什么好处?

【问题讨论】:

    标签: cloud distributed gfs


    【解决方案1】:

    据我所知,有几个原因

    1. GFS 中存储的文件非常大,即使到 PB,也没有这么大的磁盘来存储它。
    2. 与可变大小不同,固定大小的块便于索引和查询。
    3. 其实每个chunk的大小并不小,64MB左右,也是很大的大小,这样可以减少GFS需要的元数据数量。

    【讨论】:

      【解决方案2】:

      易于复制。 与整个文件相比,复制几个块更容易。如果在复制过程中出现任何错误,只需要重新复制失败的块。

      平衡服务器负载。 读写操作可以在所有的chunk server之间分离。

      提高读写吞吐量。 由于数百个服务器可以同时处理请求,因此可以提高读写吞吐量。应用程序从主服务器获取文件块的元数据,然后直接从块服务器获取这些块。

      提高磁盘利用率。 如果您的文件往往很大,那么一个块和磁盘只有很少的空间,那么为一个块而不是整个文件找到足够的空间会更容易。

      易于完整性检查。 计算块的校验和比整个文件快。当检测到损坏的块时,更容易修复块而不是整个文件。

      【讨论】:

        【解决方案3】:

        这个概念似乎与底层操作系统和 DBMS 完全一样,它们使用固定大小的页面/块用于虚拟内存以及磁盘上的数据放置。具有固定大小的块有助于碎片化,这意味着如果删除文件,空间将未被使用,因此很难重用它,因此块的大小也保持较小。这里 GFS 实际上只用于后期处理,所以没有很多删除。但是拥有固定大小的小块也可以很容易地在它们上运行 map reduce 作业。

        通过这种方式,客户端可以请求特定的块,知道每个大小只能达到 64mb,因此也可以更好地利用缓存。

        【讨论】:

          猜你喜欢
          • 2013-12-25
          • 1970-01-01
          • 1970-01-01
          • 2021-10-29
          • 1970-01-01
          • 1970-01-01
          • 2017-06-23
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多