大数据存储技术
上QQ阅读APP看书,第一时间看更新

| 1.4 本书的组织 |

本书首先从基本原理着手,逐步过渡到最新技术的讨论。由于分布式文件系统的重要性,本书的基本原理部分首先引入对分布式文件系统的讨论。这部分的讨论以谷歌文件系统(Google File System,GFS)为基础,当前的大部分分布式文件系统采用类似的体系结构。实际使用的很多开源系统(如Apache的Hadoop分布式文件系统(Hadoop Distributed File System,HDFS))也采用了类似的结构。在讨论完分布式文件系统之后,将分各章节介绍典型的大数据存储系统以及相关的关键技术。这包括其他数据存储形式,即将键值对存储进行扩展,使其可以运行在大规模的集群环境下。由于分布式数据库的内容非常多也很复杂,并且和键值对存储有一定的关联性,限于内容和篇幅的关系,本书不再讨论分布式数据库的技术。本书后面的章节将会讨论各种具体的关键技术,包括数据共享技术、数据容灾技术、重复数据删除技术、纠删码技术及其改进。

本书具体的章节分配以及内容简介如下。

第2章:分布式文件系统。

这一章以谷歌文件系统为基本的讨论对象,讨论构建分布式文件系统所需要的各种关键技术。在讨论的过程中,也会涉及通用分布式系统采用的各种技术,这些是构建分布式系统的通用技术,不仅仅适用于分布式文件系统。通过这一章的讨论,读者应当能够对大数据存储有一个初步的概念,并且对分布式系统需要解决的各种问题有直观的了解。

第3章:分布式键值对存储。

分布式键值对的存储可以说是对单机键值对存储的直接扩展,可以通过哈希的方式或者B+树的方式进行扩展,这取决于所建立的键值对存储是否需要支持范围查询。这一章分别对这两种技术进行了介绍。另外,数据库技术涉及的内容非常多。事实上,关于分布式数据库完全可以编写独立的一本书。很多大数据的存储虽然基于数据库,但是仅用到与分布式键值对相关的一些特性。因此关于数据库的存储本书不再涉及。

在读者对大数据存储知识有了初步了解之后,本书余下的部分将分系统地介绍大数据存储系统的高级技术与应用。

第4章:面向社区共享的网络文件共享系统。

大数据的一个重要应用是数据共享。这一章将讨论构造一个面向社区共享的网络文件共享系统。该共享系统基于一个多根多版本的分布式文件系统的架构,主要需要解决的问题是分布式文件系统与用户管理的结合问题,以及分布式文件系统中的多版本数据的问题。数据使用方面的工作是关于基于社区的数据共享与数据管理的工作,从而满足数据共享的需求,并达到权限管理的目的。

第5章:存储容灾系统。

大数据存储系统不仅需要做到大容量数据的存储,也需要保证数据不丢失。这一章讨论了存储容灾系统,介绍了在容灾中使用到的各种技术,以及快速的服务恢复方法。容灾的含义是可以容忍灾难的发生,灾难可能会导致同一地理位置上的数据中心停电,或者整个数据中心会被摧毁。在这种情况下,如何保证数据一直持续存在是非常重要的。

第6章:大数据存储系统的删冗。

大数据存储系统如果一直保留所有数据,存储容量将很快变得无法控制。重复数据删除技术是一种非常重要的技术,其可以充分利用有限的存储容量来保存更多的数据。这一章将对重复数据删除技术展开讨论,包括二级存储(Secondary Storage)的删冗以及主存储(Primary Storage)的删冗,分别以两个具体系统的方式展开讨论和研究。二级存储的删冗主要针对重复数据的计算,而主存储的删冗还需要考虑对应用性能的影响。

第7章:大数据存储纠删码技术与优化。

这一章讨论纠删码技术。纠删码技术是不同于多副本技术的另一种容灾策略,它的基本思想是:通过纠删码算法对k个原始数据块进行数据编码得到m个纠删码块,并将这k+m个数据块存入不同的数据存储节点,完成数据可靠性机制的建立。这一章讨论选择框架思想,即利用目前出现的柯西矩阵的生成方法和对柯西矩阵求调度的算法形成求取优化调度方案的选择框架,以提高柯西里德-所罗门(Cauchy Reed-Solomon,CRS)编码效率。该选择框架得出的优化调度方案,可以用于任何以CRS编码为容灾策略的存储系统。