本人新书上市 《分布式系统与一致性》

好长时间没有写文章了,主要是在写一本书,书名《分布式系统与一致性》。之前写过一些分布式技术和分布式一致性的文章,但是没有系统性,所以萌生了写一本书系统讲解一下这个领域。本书通过GFS、HDFS、Google BigTable、MongoDB、RabbitMQ、Zookeeper、Google Spanner、CockroachDB这些实际的分布式系统,讲述Paxos、Raft、Zab这些分布式算法,并且基于这些实例和算法讲述分布式一致性。

列举一下本书的目录,公大家参考,希望本书对大家有益。

1部分 开 篇
1章 分布式系统的核心特性:一致性 2
1.1 拆分是解决大规模应用的本质 2
1.2 分布式技术是大规模应用的后一个考验 4
1.3 一致性是这个考验的核心 6

2部分 系统案例
2章 Google的文件系统 8
2.1 GFS的外部接口和架构 8
2.1.1 GFS的外部接口 8
2.1.2 GFS的架构 9
2.2 GFS的写流程细节 11
2.2.1 名字空间管理和锁保护 11
2.2.2 租约 11
2.2.3 变更及变更次序 11
2.3 GFS的原子性 13
2.3.1 write和record append的区别 13
2.3.2 GFS中原子性的含义 14
2.3.3 GFS中多副本之间不具有原子性 15
2.4 GFS的松弛一致性 15
2.4.1 元数据的一致性 15
2.4.2 文件数据的一致性 15
2.4.3 适应GFS的松弛一致性 16
2.4.4 GFS的设计哲学 17
3章 开源的文件系统HDFS 19
3.1 HDFS的外部接口和架构 19
3.1.1 HDFS的外部接口 19
3.1.2 HDFS的架构 20
3.2 HDFS的写流程细节 21
3.2.1 打开文件 22
3.2.2 pipeline写入 22
3.2.3 上报block状态 24
3.2.4 关闭文件 24
3.2.5 DN定期上报信息 24
3.3 HDFS的错误处理 25
3.3.1 DN的错误 25
3.3.2 NN的错误 26
3.3.3 客户端的错误 26
4章 Google的BigTable系统 30
4.1 BigTable的外部接口和架构 30
4.1.1 表 30
4.1.2 数据 31
4.1.3 原子性 32
4.1.4 时间戳 32
4.1.5 BigTable的数据模型 33
4.1.6 BigTable的架构 34
4.2 BigTable的实现 35
4.2.1 tablet location 35
4.2.2 tablet的指派 36
4.2.3 加载tablet 36
4.2.4 tablet的读/写作 37
4.2.5 合并 38
5章 文档数据库MongoDB 39
5.1 MongoDB的外部接口和架构 39
5.1.1 MongoDB的基本概念 39
5.1.2 MongoDB的架构 39
5.2 MongoDB的standalone模式 40
5.2.1 MongoDB的写入过程 40
5.2.2 无确认导致的丢失更新异常 40
5.2.3 未持久化导致的丢失更新异常 41
5.3 MongoDB的replica set模式 42
5.3.1 MongoDB的复制过程 43
5.3.2 无副本确认导致的丢失更新异常 44
5.3.3 不正确选主导致的丢失更新异常 45
5.3.4 脑裂导致的丢失更新异常 47
5.3.5 缺失任期信息导致的丢失更新异常 48
5.3.6 脏读异常 51
5.3.7 陈旧读异常 52
6章 消息系统RabbitMQ 54
6.1 RabbitMQ简述 54
6.1.1 关于broker 54
6.1.2 RabbitMQ的接口 55
6.1.3 镜像队列 55
6.2 RabbitMQ的基本实现 55
6.2.1 镜像复制 55
6.2.2 镜像加入队列 56
6.2.3 镜像同步过程 56
6.3 master切换及RabbitMQ的异常处理 57
6.3.1 意外宕机后的master切换 57
6.3.2 主动运维后的master切换 57
6.3.3 意外宕机与主动运维的默认行为差异 58
6.3.4 网络分区后的master切换 58
6.4 确认机制 59
7章 协调服务ZooKeeper 60
7.1 协调服务的应用场景 60
7.2 ZooKeeper简述 61
7.2.1 ZooKeeper的数据模型 61
7.2.2 ZooKeeper的外部接口 62
7.2.3 ZooKeeper的架构 63
7.3 ZooKeeper的实现细节 65
7.3.1 客户端异步处理 65
7.3.2 请求处理器 65
7.3.3 原子广播 67
8章 Google的Spanner数据库 69
8.1 Spanner的数据模型 69
8.2 Spanner的架构 72
8.3 Spanner的实现 73
8.4 TrueTime的作用 81
9章 分布式数据库CockroachDB 86
9.1 CockroachDB的接口和数据模型 86
9.2 CockroachDB的架构 87
9.3 元数据存储的实现 88
9.4 多副本存储的实现 90
9.5 事务的实现 92

3部分 分布式算法
10章 共识算法Paos 108
10.1 Paos的历史 108
10.2 Consensus vs Paos 110
10.3 Basic Paos算法 111
10.4 Multi Paos 算法 132
10.5 复制状态机 144
10.6 Paos算法与复制状态机 146
10.7 原子广播 148
10.8 Paos算法与原子广播 149
11章 复制日志算法Raft 152
11.1 Raft是复制日志的算法 152
11.2 Raft算法的组成 153
11.3 复制过程 153
11.4 选举过程 154
11.5 异常处理 157
12章 原子广播算法Zab 163
12.1 Zab算法简述 163
12.2 各版本Zab算法的共有部分 164
12.3 设计的Zab算法 172
12.4 Zab Pre 1.0算法 177
12.5 Zab 1.0算法 179

4部分 一 致 性
13章 事务一致性与隔离级别 184
13.1 ANSI的隔离级别 185
13.2 SI和SSI隔离级别 190
14章 顺序一致性 193
14.1 顺序一致性的正式定义 193
14.2 理解顺序一致性 202
14.3 顺序一致性的其他描述 204
14.4 顺序一致性的作用 206
15章 线性一致性与强一致性 210
15.1 什么是线性一致性 210
15.2 判断系统是否满足线性一致性 213
15.3 对线性一致性的理解与强一致性 216
15.4 ZooKeeper的一致性分析 219
16章 架构设计中的权衡 225
16.1 什么是CAP定理 225
16.2 关于CAP定理的错误理解 228
16.3 CAP中的权衡 230
16.4 进一步权衡:HAT和PACELC 231

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值