数据密集型应用系统设计

数据密集型应用系统设计

编辑推荐

每章都有一张思维导图,十二张思维导图助你理清学习本书的脉络。

深入探索常用分布式系统内部机制,学习如何高效运用这些技术。

分析各种工具的优势和不足,帮助做出明智的设计决策。

解析一致性、扩展性、容错和复杂度之间的权衡利弊。

介绍分布式系统研究的新进展(现代数据库的基石)。

揭示主流在线服务的基本架构。

内容简介

全书分为三大部分:

第一部分,主要讨论有关增强数据密集型应用系统所需的若干基本原则。首先开篇第1章即瞄准目标:可靠性、可扩展性与可维护性,如何认识这些问题以及如何达成目标。第2章我们比较了多种不同的数据模型和查询语言,讨论各自的适用场景。接下来第3章主要针对存储引擎,即数据库是如何安排磁盘结构从而提高检索效率。第4章转向数据编码(序列化)方面,包括常见模式的演化历程。

第二部分,我们将从单机的数据存储转向跨机器的分布式系统,这是扩展性的重要一步,但随之而来的是各种挑战。所以将依次讨论数据远程复制(第5章)、数据分区(第6章)以及事务(第7章)。接下来的第8章包括分布式系统的更多细节,以及分布式环境如何达成一致性与共识(第9章)。

第三部分,主要针对产生派生数据的系统,所谓派生数据主要指在异构系统中,如果无法用一个数据源来解决所有问题,那么一种自然的方式就是集成多个不同的数据库、缓存模块以及索引模块等。首先第10章以批处理开始来处理派生数据,紧接着第11章采用流式处理。第12章总结之前介绍的多种技术,并分析讨论未来构建可靠、可扩展和可维护应用系统可能的新方向或方法。

作者简介

作者简介

Martin Kleppmann是英国剑桥大学分布式系统方向的研究员。此前,他曾是LinkedIn和Rapportive等互联网公司的软件工程师,负责大规模数据基础设施建设。在此过程中他遇到过一些困难,因此他希望这本书能够帮助读者避免重蹈覆辙。Martin还是一位活跃的会议演讲者、博主和开源贡献者。他认为,每个人都应该学习深刻的技术理念,对技术的深入理解能帮助我们开发出更好的软件。

译者简介

赵军平, 大数据存储与分析资深开发者与推广者(EMC 10余年),GPU异构计算的亲历者。中国计算机协会专家委员,DELL EMC资深架构师。12年系统研发、创新与团队管理经验,擅长数据存储与保护, 云计算与大数据实时分析,GPU异构加速优化等。相关领域已申请中、美技术专利100余项,并多次在SNIA,LinuxConf,Hadoop Summit, Nvidia GPU Tech Conf等做技术分享,持续关注数据密集和计算密集相关技术的演进、融合与赋能推广。

吕云松,北京大学计算机硕士,硕士及DELL EMC中国研究院实习期间专注于大数据实时流式处理相关的研究。现就职于华为2012中软院黎曼实验室,主要从事深度学习的研发。

耿煜,DELL EMC架构师兼GTM负责人,致力于推广企业级数字化转型方案。深耕分布式架构以及云计算12年,先后任职于ChinaCache,Sun Microsystems以及EMC等公司。

李三平,美国麻省大学计算机工程专业博士,DELL EMC中国研究院首席科学家,研究方向为机器学习、深度学习、智能运维、遥感影像等。已在IEEE Transactions期刊和会议上发表论文数十篇,申请美国专利20余项。推崇简约,热衷机器学习。

章节目录

前言 .....................................................1

第一部分 数据系统基础

第1章 可靠、可扩展与可维护的应用系统 ................... 11

认识数据系统 ...........................................12

可靠性 ..................................................14

可扩展性 ................................................18

可维护性 ................................................25

小结 .....................................................28

第2章 数据模型与查询语言 ............................... 33

关系模型与文档模型 .......................................34

数据查询语言 ...........................................46

图状数据模型 ......................................52

小结 ...................................................65

第3章 数据存储与检索 .................................. 71

数据库核心:数据结构 ...................................72

事务处理与分析处理 ...................................89

列式存储 .........................................94

小结 ..............................................101

第4章 数据编码与演化 .............................. 109

数据编码格式 .................................... 110

数据流模式 ......................................124

小结 .............................................134

第二部分 分布式数据系统

第5章 数据复制 ................................. 145

主节点与从节点 ..................................146

复制滞后问题 ......................................154

多主节点复制 .......................................160

无主节点复制 .....................................168

小结 ..............................................181

第6章 数据分区 ............................... 189

数据分区与数据复制 .................................190

键-值数据的分区 ...................................190

分区与二级索引 ...................................195

分区再平衡 ....................................198

请求路由 ..................................202

小结 .................................204

第7章 事务 .............................. 211

深入理解事务 ......................................212

弱隔离级别 .................................221

串行化 ...........................................237

小结 ...........................................250

第8章 分布式系统的挑战 ...................... 259

故障与部分失效 ...............................260

不可靠的网络 ..................................262

不可靠的时钟 ..................................271

知识,真相与谎言 ...............................282

小结 ..........................................292

第9章 一致性与共识 ..................... 303

一致性保证 ....................................304

可线性化 ........................................305

顺序保证 ........................................319

分布式事务与共识 .................................330

小结 ...............................................349

第三部分 派生数据

第10章 批处理系统 ................................ 367

使用UNIX工具进行批处理 .............................368

MapReduce与分布式文件系统 .........................375

超越MapReduce ....................................394

小结 ............................................403

第11章 流处理系统 .............................. 413

发送事件流 .......................................414

数据库与流 .......................................424

流处理 .........................................435

小结 ............................................449

第12章 数据系统的未来 ............................ 461

数据集成 .........................................461

分拆数据库 .......................................469

端到端的正确性 ....................................484

做正确的事情 .......................................500

小结 ..............................................509

术语表 ............................................ 521

数据密集型应用系统设计是2018年由中国电力出版社出版,作者[美]MartinKleppmann。

得书感谢您对《数据密集型应用系统设计》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

你可能喜欢
ODPS权威指南——阿里大数据平台应用开发实践 电子书

  2014年天猫双11购物狂欢节成交额创下了571.12亿元的纪录!  交易创建峰值能力达到每秒钟8万笔,支付宝的支付峰值突破了每分钟285万笔。  成功创下这项纪录背后,有...
精通特征工程 电子书

掌握特征工程基本原则和应用,增强机器学习算法效果。
统计思维:程序员数学之概率统计(第2版) 电子书

本书介绍了如何借助计算而非数学方法,使用Python语言对数据进行统计分析。
R语言入门与实践 电子书

本书适合立志成为数据科学家的R语言初学者阅读。
数据结构与算法JavaScript描述 电子书

用JavaScript描述数据结构与算法的开山之作,汇聚了作者多年的实战经验。
图解数据结构与算法 电子书

图解+步骤学数据结构,适合非编程读者。
Oracle从入门到精通 电子书

(1)全程同步视频教学,手机扫码,随看随学(2)Oracle项目实战教学录像(3)Java项目实战教学录像(4)全书配套范例源码与实战练习答案(5)Oracle常见面试题、Or...