GFS论文笔记

作者: trieyouth | 来源:发表于2016-04-18 12:02 被阅读332次

    前言

    这是看GFS的论文的研读笔记。

    GFS设计目的

    • 满足日益增长的数据处理需求

    GFS设计的目标

    高性能,可伸缩,高可靠,高可用

    • 高性能:一般是指时间复杂度小,空间复杂度小,CPU占用时间少等
    • 可伸缩:指程序性能硬件资源的增加和减少而增强或减弱的能力,可伸缩有很多种,线性伸缩(世界人民的目标),超线性伸缩,负伸缩等,但是随着程序规模的增大,伸展性会越来越差
    • 可靠性:指程序在规定条件下,在规定时间内完成规定任务的能力
    • 可用性:就是一个系统处在可工作状态的时间的比例

    GFS设计假设

    • 组件失效被认为是常态事件,而不是意外事件。(容错能力)
    • 系统存储一定数量的大文件。(大数据)
    • 系统的工作负载主要由两种读操作组成:大规模的流式读取和小规模的随机读取。(读写模型)
    • 系统的工作负载还包括许多大规模的、顺序的、数据追加方式的写操作。(读写模型)
    • 系统必须高效的、行为定义明确的实现多客户端并行追加数据到同一个文件里的语意。
    • 高性能的稳定网络带宽远比低延迟重要。

    GFS设计架构

    GFS架构图.png

    注解:

    • 元数据:命名空间、访问控制信息、文件和Chunk的映射信息、以及当前Chunk的位置信息
    • 心跳:master以心跳周期来和chunk通信,给chunk指示以及收集他们当前状态

    GFS系统设计的优点

    • 容错性:每个块都会复制到多个块服务器上。缺省情况下,我们使用3个存储复制节点,不过用户可以为不同的文件命名空间设定不同的复制级别。
    • 单一的Master节点:单一的Master简化了设计,使架构能变得简单。Master一般会返回离Client最近的文件副本(减少网络IO)
    • Client采用库形式:GFS客户端代码以库的形式被链接到客户程序里。客户端代码实现了GFS文件系统的API接口函数、应用程序与Master节点和Chunk服务器通讯、以及对数据进行读写操作
    • Chunk的大小选择:默认为64MB, 较大Chunk尺寸减少Client和Master通讯,减少Master存储元数据的大小,Client对一个Chunk能进行多次操作,减少网络IO。

    GFS系统的缺点

    • 单一的Master节点:有可能成为系统瓶颈,需要减少对Master的读写较大
    • Chunk尺寸的缺点:小文件会存储为一个Chunk,多个Client同时对单个小文件多次操作时,存放这个Chunk的Server会成为热点

    系统缺点的解决:

    • 单一的Master节点:Client只询问Master相关文件的元数据信息,Client对元数据信息做适当缓存,后面的具体读写操作均在Chunk上

    GFS交互流程

    GFS数据交换操作图.png

    相关文章

      网友评论

        本文标题:GFS论文笔记

        本文链接:https://www.haomeiwen.com/subject/ygcalttx.html