重磅推荐
【内容】
本书系统讲解大规模分布式存储系统的原理与佳实践,分析互联网公司的大规模分布式存储系统架构,解析分布式技术中的要点,细致讲解分布式系统OceanBasede的实现经验。主要内容分为四个部分:基础篇——分布式存储系统的基础知识,包含单机存储系统的知识,如数据模型、事务与并发控制、故障恢复、存储引擎、压缩/解压缩等;分布式系统的数据分布、复制、一致性、容错、可扩展性等。范型篇——介绍Google、亚马逊、微软、阿里巴巴等互联网公司的大规模分布式存储系统架构,涉及分布式文件系统、分布式键值系统、分布式表格系统以及分布式数据库技术等。实践篇——以阿里巴巴的分布式数据库OceanBase为例,详细介绍分布式数据库内部实现,以及实践过程中的经验。专题篇——介绍分布式系统的主要应用:云存储和大数据,这些是近年来的热门领域,这部分介绍了云存储平台、技术与安全,以及大数据的概念、流式计算、实时分析等。本书是作者多年实践经验的总结,内容深入浅出、实用性强。可帮助云计算开发技术人员快速构建云存储系统,也可供广大网络技术开发人员参考。
【目录】
目  录
前言
第1章 概述 /1
1.1 分布式存储概念 /1
1.2 分布式存储分类 /2
篇 基础篇
第2章 单机存储系统 /6
2.1 硬件基础 /6
2.1.1 CPU架构 /6
2.1.2 IO总线 /7
2.1.3 网络拓扑 /9
2.1.4 性能参数 /10
2.1.5 存储层次架构 /11
2.2 单机存储引擎 /12
2.2.1 哈希存储引擎 /12
2.2.2 B树存储引擎 /14
2.2.3 LSM树存储引擎 /15
2.3 数据模型 /17
2.3.1 文件模型 /17
2.3.2 关系模型 /18
2.3.3 键值模型 /19
2.3.4 SQL与NoSQL /20
2.4 事务与并发控制 /21
2.4.1 事务 /21
2.4.2 并发控制 /23
2.5 故障恢复 /26
2.5.1 操作日志 /26
2.5.2 重做日志 /27
2.5.3 优化手段 /27
2.6 数据压缩 /29
2.6.1 压缩算法 /29
2.6.2 列式存储 /33
第3章 分布式系统 /36
3.1 基本概念 /36
3.1.1 异常 /36
3.1.2 一致性 /38
3.1.3 衡量指标 /39
3.2 性能分析 /40
3.3 数据分布 /42
3.3.1 哈希分布 /43
3.3.2 顺序分布 /45
3.3.3 负载均衡 /46
3.4 复制 /47
3.4.1 复制的概述 /47
3.4.2 一致性与可用性 /49
3.5 容错 /50
3.5.1 常见故障 /50
3.5.2 故障检测 /51
3.5.3 故障恢复 /52
3.6 可扩展性 /53
3.6.1 总控节点 /54
3.6.2 数据库扩容 /54
3.6.3 异构系统 /56
3.7 分布式协议 /57
3.7.1 两阶段提交协议 /57
3.7.2 Paxos协议 /59
3.7.3 Paxos与2PC /60
3.8 跨机房部署 /60
第二篇 范型篇
第4章 分布式文件系统 /66
4.1 Google文件系统 /66
4.1.1 系统架构 /66
4.1.2 关键问题 /67
4.1.3 Master设计 /72
4.1.4 ChunkServer设计 /74
4.1.5 讨论 /74
4.2 Taobao File System /75
4.2.1 系统架构 /75
4.2.2 讨论 /78
4.3 Facebook Haystack /78
4.3.1 系统架构 /79
4.3.2 讨论 /82
4.4 内容分发网络 /83
4.4.1 CDN架构 /83
4.4.2 讨论 /85
第5章 分布式键值系统 /86
5.1 Amazon Dynamo /86
5.1.1 数据分布 /86
5.1.2 一致性与复制 /88
5.1.3 容错 /89
5.1.4 负载均衡 /90
5.1.5 读写流程 /91
5.1.6 单机实现 /92
5.1.7 讨论 /93
5.2 淘宝Tair /93
5.2.1 系统架构 /93
5.2.2 关键问题 /94
5.2.3 讨论 /96
第6章 分布式表格系统 /97
6.1 Google Bigtable /97
6.1.1 架构 /98
6.1.2 数据分布 /100
6.1.3 复制与一致性 /101
6.1.4 容错 /101
6.1.5 负载均衡 /102
6.1.6 分裂与合并 /102
6.1.7 单机存储 /103
6.1.8 垃圾回收 /104
6.1.9 讨论 /105
6.2 Google Megastore /105
6.2.1 系统架构 /107
6.2.2 实体组 /108
6.2.3 并发控制 /109
6.2.4 复制 /110
6.2.5 索引 /111
6.2.6 协调者 /111
6.2.7 读取流程 /112
6.2.8 写入流程 /113
6.2.9 讨论 /115
6.3 Windows Azure Storage /115
6.3.1 整体架构 /115
6.3.2 文件流层 /117
6.3.3 分区层 /121
6.3.4 讨论 /125
第7章 分布式数据库 /126
7.1 数据库中间层 /126
7.1.1 架构 /126
7.1.2 扩容 /128
7.1.3 讨论 /128
7.2 Microsoft SQL Azure /129
7.2.1 数据模型 /129
7.2.2 架构 /131
7.2.3 复制与一致性 /132
7.2.4 容错 /132
7.2.5 负载均衡 /133
7.2.6 多租户 /133
7.2.7 讨论 /134
7.3 Google Spanner /134
7.3.1 数据模型 /134
7.3.2 架构 /135
7.3.3 复制与一致性 /136
7.3.4 TrueTime /137
7.3.5 并发控制 /138
7.3.6 数据迁移 /139
7.3.7 讨论 /139
第三篇 实践篇
第8章 OceanBase架构初探 /142
8.1 背景简介 /142
8.2 设计思路 /143
8.3 系统架构 /144
8.3.1 整体架构图 /144
8.3.2 客户端 /145
8.3.3 RootServer /147
8.3.4 MergeServer /148
8.3.5 ChunkServer /149
8.3.6 UpdateServer /149
8.3.7 定期合并&数据分发 /150
8.4 架构剖析 /151
8.4.1 一致性选择 /151
8.4.2 数据结构 /152
8.4.3 可靠性与可用性 /154
8.4.4 读写事务 /154
8.4.5 单点性能 /155
8.4.6 SSD支持 /156
8.4.7 数据正确性 /157
8.4.8 分层结构 /158
第9章 分布式存储引擎 /159
9.1 公共模块 /159
9.1.1 内存管理 /159
9.1.2 基础数据结构 /161
9.1.3 锁 /164
9.1.4 任务队列 /165
9.1.5 网络框架 /166
9.1.6 压缩与解压缩 /167
9.2 RootServer实现机制 /168
9.2.1 数据结构 /168
9.2.2 子表复制与负载均衡 /170
9.2.3 子表分裂与合并 /171
9.2.4 UpdateServer选主 /172
9.2.5 RootServer主备 /173
9.3 UpdateServer实现机制 /174
9.3.1 存储引擎 /174
9.3.2 任务模型 /179
9.3.3 主备同步 /181
9.4 ChunkServer实现机制 /183
9.4.1 子表管理 /183
9.4.2 SSTable /184
9.4.3 缓存实现 /188
9.4.4 IO实现 /190
9.4.5 定期合并&数据分发 /191
9.4.6 定期合并限速 /192
9.5 消除更新瓶颈 /193
9.5.1 读写优化回顾 /193
9.5.2 数据旁路导入 /195
9.5.3 数据分区 /195
第10章 数据库功能 /197
10
返回顶部