大规模分布式存储系统 ——原理解析与架构实战
随着社交网络、移动互联网、电子商务等技术的不断发展,互联网的使用者贡献了越来越多的内容。为了处理这些内容,每个互联网公司在后端都有一套成熟的分布式系统用于数据的存储、计算以及价值提取。Google是全球最大的互联网公司,也是在分布式技术上相对成熟的公司,其公布的Google分布式文件系统GFS、分布式计算系统MapReduce、分布式表格系统Bigtable都成为业界竞相模仿的对象,最近公布的全球数据库Spanner更是能够支持分布在世界各地上百个数据中心的上百万台服务器。Google的核心技术正是后端这些处理海量数据的分布式系统。和Google类似,国外的亚马逊、微软以及国内互联网三巨头阿里巴巴、百度和腾讯的核心技术也是其后端的海量数据处理系统。
本书的内容是介绍互联网公司的大规模分布式存储系统。与传统的高端服务器、高端存储器和高端处理器不同的是,互联网公司的分布式存储系统由数量众多的、低成本和高性价比的普通PC服务器通过网络连接而成。互联网的业务发展很快,而且注重成本,这就使得存储系统不能依靠传统的纵向扩展的方式,即先买小型机,不够时再买中型机,甚至大型机。互联网后端的分布式系统要求支持横向扩展,即通过增加普通PC服务器来提高系统的整体处理能力。普通PC服务器性价比高,故障率也高,需要在软件层面实现自动容错,保证数据的一致性。另外,随着服务器的不断加入,需要能够在软件层面实现自动负载均衡,使得系统的处理能力得到线性扩展。
分布式存储和当今同样备受关注的云存储和大数据又是什么关系呢?分布式存储是基础,云存储和大数据是构建在分布式存储之上的应用。移动终端的计算能力和存储空间有限,而且有在多个设备之间共享资源的强烈的需求,这就使得网盘、相册等云存储应用很快流行起来。然而,万变不离其宗,云存储的核心还是后端的大规模分布式存储系统。大数据则更近一步,不仅需要存储海量数据,还需要通过合适的计算框架或者工具对这些数据进行分析,抽取其中有价值的部分。如果没有分布式存储,便谈不上对大数据进行分析。仔细分析还会发现,分布式存储技术是互联网后端架构的“九阳神功”,掌握了这项技能,以后理解其他技术的本质会变得非常容易。
分布式存储技术如此重要,市面上也有很多分布式系统相关的书籍。然而,这些书籍往往注重理论不重实践,且所述理论也不太适合互联网公司的大规模存储系统。这是因为,虽然分布式系统研究了很多年,但是大规模分布式存储系统是在近几年才流行起来,而且起源于以Google为首的企业界而非学术界。笔者2007年年底加入百度公司,师从阳振坤老师,从事大规模分布式存储的研究和实践工作,曾经开发过类似GFS、MapReduce和Bigtable的分布式系统,后来转战阿里巴巴继续开发分布式数据库OceanBase,维护分布式技术博客NosqlNotes(http://www.nosqlnotes.net)。笔者在业余时间阅读并理解了绝大部分分布式系统原理和各大互联网公司的系统范型相关论文,深知分布式存储系统的复杂性,也能够体会到广大读者渴望弄清楚分布式存储技术本质和实现细节的迫切心情,因而集中精力编写了这本书,希望对从事分布式存储应用的技术人员有所裨益。
本书的目标是介绍互联网公司的大规模分布式存储系统,共分为四篇:
●基础篇。基础知识包含两个部分:单机存储系统以及分布式系统。其中,单机存储系统的理论基础是数据库技术,包括数据模型、事务与并发控制、故障恢复、存储引擎、数据压缩等;分布式系统涉及数据分布、复制、一致性、容错、可扩展性等分布式技术。另外,分布式存储系统工程师还需要一项基础训练,即性能预估,因此,基础篇也会顺带介绍硬件基础知识以及性能预估方法。
●范型篇。这部分内容将介绍Google、亚马逊、微软、阿里巴巴等各大互联网公司的大规模分布式存储系统,分为四章:分布式文件系统、分布式键值系统、分布式表格系统以及分布式数据库。
●实践篇。这部分内容将以笔者在阿里巴巴开发的分布式数据库OceanBase为例详细介绍分布式数据库内部实现以及实践过程中的经验总结。
●专题篇。云存储和大数据是近年来兴起的两大热门领域,其底层都依赖分布式存储技术,这部分将简单介绍这两方面的基础知识。
本书适合互联网行业或者其他从事分布式系统实践的工程人员,也适合大学高年级本科生和研究生作为分布式系统或者云计算相关课程的参考书籍。阅读本书之前,建议首先理解分布式系统和数据库相关基础理论,接着阅读第一篇。如果对各个互联网公司的系统架构感兴趣,可以选择阅读第二篇的某些章节;如果对阿里巴巴OceanBase的架构设计和实现感兴趣,可以顺序阅读第三篇。最后,如果对云存储或者大数据感兴趣,可以选择阅读第四篇的某个章节。
感谢阳振坤老师多年以来对我在云计算和分布式数据库这两个领域的研究实践工作的指导和鼓励。感谢在百度以及阿里巴巴与我共事多年的兄弟姐妹,我们患难与共,一起实现共同的梦想。感谢机械工业出版社的吴怡编辑、新浪微博的杨卫华先生、百度的侯震宇先生以及支付宝的童家旺先生在本书撰写过程中提出的宝贵意见。
由于分布式存储技术涉及一些公司的商业机密,加上笔者水平有限、时间较紧,所以书中难免存在谬误,很多技术点涉及的细节描述得还不够详尽,恳请读者批评指正。可将任何意见和建议发送到我的邮箱knuthocean@163.com,本书相关的勘误和技术细节说明也会发布到我的个人博客NosqlNotes。我的新浪微博账号是“阿里日照”,欢迎读者通过邮件、博客或者微博与我交流分布式存储相关的任何问题。我也将密切跟踪分布式存储技术的发展,吸收您的意见,适时编写本书的升级版本。
-
NFC卡模拟 解锁可模拟各类门禁卡
NFC卡模拟是一款功能强大的NFC(近场通信)卡模拟应用,它允许用户在没有物理卡片的情况下使用手机模拟各种类型的NFC卡,包括门禁卡、公交... 897 0 25-05-08 -
3m互助系统
全原生态内核,非thinkphp等其他第三方内核,支持模板制作,标签函数调用,支持二次开发,注册短信,匹配通知短信,通知邮件发送,想要什么... 400 0 21-07-02 -
打印机共享设置助手Win10版,Win7版 PrinterTool
Printer Tool是很具专业性的打印机配置软件,可以帮助使用者立即对新的打印设备配置,让用户可以正常使用打印机工作。软件不仅支持串口设... 903 0 25-04-26 -
彻底去广告 冰点文库下载器
冰点下载器是一款非常实用的下载工具,该软件体积小巧、绿色免安装、无需注册和登陆,同时还不需要更任何的积分或者财富值,操作起来简单易... 939 0 24-12-22 -
网络分析技术揭秘 ——原理、实践与WinPcap深入解析
过去我一直在从事软件开发相关的工作,主要负责软件开发、软件测试及软件工程的研究。其中包括Windows操作系统应用软件的开发,Linux操作系... 1212 0 24-05-24 -
css 3D翻转轮播
435 0 21-06-02 -
中学生必背古诗文132篇
中国是一个有着5000年历史积淀的古老国度。在历史的长河中,我们的祖先留下了丰厚的文化遗产。要激活这座文化宝山,登堂入室,则必须首先拿... 1232 0 24-07-14 -
批量修改文件文件夹时间戳工具newfiletime
NewFileTime 是是一款简易实用用来修改文件时间属性的小工具,可以修改文件的创建时间、访问时间、和修改时间三项数据。修改文件时间信息... 892 0 25-05-06
发表我的评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~