【问题标题】:Google File System block size谷歌文件系统块大小
【发布时间】:2014-10-16 05:50:13
【问题描述】:

为什么GFS中的块大小为64Mb,但当文件大小不是64的倍数时可能导致内部碎片

【问题讨论】:

    标签: gfs


    【解决方案1】:

    在他们的目标应用程序中,文件更可能很大。块服务器可以执行大的顺序读取而不是许多小读取,从而提高吞吐量。

    GFS 论文中提到的三个原因:

    1. 降低主机负载。 GFS 的主服务器只提供块的元数据,而不提供块内容。因此,如果块相对较大,发送到主服务器的请求将更少。
    2. 减少网络开销,它鼓励应用程序在单个块和持久网络连接上完成许多操作。应用程序获取数据的请求也更少。
    3. 减少存储在主服务器中的元数据大小。 GFS 的设计中只有一台主服务器。块的所有元数据都存储在主服务器的内存中,以减少延迟并提高吞吐量。大块意味着更少的元数据,更少的元数据意味着更少的元数据加载时间。

    此外,元数据分布在块服务器上以解决局部性问题,而不是主服务器。当主服务器启动时,它会从所有块服务器加载元数据。因此,更少的元数据意味着更少的启动时间。

    为了限制大块大小的影响,GFS 使用惰性空间分配,即如果一个文件只有 1 MB 大小,GFS 只向文件系统请求 1 MB 而不是 64 MB,以避免浪费空间到内部碎片化。

    值得一提的是,GFS 的继任者 Colossus 将数据块大小从 64MB 减少到 1MB。

    【讨论】:

      【解决方案2】:

      这些系统是为处理较大的文件而开发的。同样,默认情况下 HDFS 使用 128 MB。

      【讨论】:

        猜你喜欢
        • 2013-12-05
        • 2023-03-29
        • 2010-12-02
        • 2020-09-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-03
        • 1970-01-01
        相关资源
        最近更新 更多