Google分布式系统三大论文解析

序言
分布式系统在互联网领域的应用已相当广泛,要深入理解它,还需要掌握分布式理论基础、分布式一致性算法。毫无疑问,Google是在这一领域的开山鼻祖,为往圣继绝学,作者将重温Google在分布式系统领域的三大经典论文——GFS、MapReduce、BigTable。

GFS

  • 定义
  • 结构
  • 功能
  • 问题

定义
Google文件系统,是基于中心化处理的文件系统,基于普通磁盘就能处理大规模数据分析的经典实现

结构
Google分布式系统三大论文解析_第1张图片

概念 解释
client 应用调用端
master 集群管理服务,存储元数据,负责chunk信息管理,复制、迁移,一般是主备的策略,默认三个结点
chunkServer 文件存储服务,以Linux文件形式存储,文件被分为多个chunk,每个chunk有一定副本数

功能

  • 支持高并发读写、高吞吐量

采用写日志文件的方式,实现“生产者-消费者”的队列模式,可并发追加日志与消费日志。并发追加带来线程同步的问题,GFS是采取对目录空间的每个结点设置读写锁的方式,来支持同一结点下并发写入与访问
文件路径采用“前缀压缩”算法,以极低的空间占用装载进master的整个内存空间,同时提供极高的查找效率。

  • 中心化处理的文件系统

简化了对chunkServer的管理,GFS为避免master成为流量瓶颈,做了以下工作:
第一,控制流、数据流分离,参考上图,若client需要获取文件,先尝试与master沟通;master与chunkServer沟通,找到文件具体地址后返回给client;client最后与chunkServer做实际的数据流交互。
第二,增大chunk的size,大小设为64M,远远大于读取内存页的大小,这一操作缩小了在master上存储元数据的总量,也降低了client请求master的频率,据估算,64byte的元数据可以记录64M chunk的信息。

  • 高度容错

文件损坏检查及chunk的副本过期检测。前者基于chunksum的校验,后者基于版本号的比对

  • 垃圾回收

采用COW 即写时拷贝技术,增加引用计数,若不能被chunkServer识别的chunk 就是无效文件,可以被批量作业延时回收,延时策略可避免误删,方便回滚,但是占用机器的空间。

问题

  • COW写时复制
  • 前缀压缩算法
  • 惰性空间分配
  • master有点像索引文件,chunkServer是具体数据文件。可以类比mysql么

你可能感兴趣的:(分布式理论,分布式,实时大数据,数据库)