书籍详情
《分布式系统与一致性》[58M]百度网盘|亲测有效|pdf下载
  • 分布式系统与一致性

  • 出版社:文轩网旗舰店
  • 出版时间:2021-05
  • 热度:7566
  • 上架时间:2024-06-30 09:08:33
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

作  者:陈东明 著
定  价:79
出 版 社:电子工业出版社
出版日期:2021年05月01日
页  数:252
装  帧:平装
ISBN:9787121410413
主编推荐
"√ 全面覆盖文件、存储、消息、数据库、协调服务、一致性实现原理、算法的分布式架构设计宝典。 √ 十余年经验架构专家讲述分布式技术核心一致性理论,更精心组织、剖析业界前沿系统案例。 √ 饿了么KV数据库开发负责人现身实战解密“高并发、可扩展分布式系统设计”带来的一一致性难题。 √ 面向大型分布式系统构建,深入剖析重要的一致性特性,将晦涩理论融入实际案例使其浅显易读。"
目录
部分  开 篇 章 分布式系统的核心特性:一致性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 参考文献18 第3章 开源的文件系统HDFS19 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 参考文献29 第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 location35 4.2.2 tablet的指派3.2.3 加载tablet3.2.4 tablet的读/写操作37 4.2.5 合并38 参考文献38 第5章 文档数据库MongoDB39 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章 消息系统RabbitMQ54 6.1 RabbitMQ简述54 6.1.1 关于broker54 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 确认机制59 第7章 协调服务ZooKeeper60 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 参考文献68 第8章 Google的Spanner数据库69 8.1 Spanner的数据模型69 8.1.1 带模式的半关系型表69 8.1.2 通用事务71 8.2 Spanner的架构72 8.3 Spanner的实现73 8.3.1 tablet与存储73 8.3.2 复制73 8.3.3 TrueTime74 8.3.4 事务75 8.3.5 目录80 8.3.6 Paxos的作用80 8.4 TrueTime的作用81 8.4.1 Spanner的外部一致性81 8.4.2 TrueTime生成事务时间戳82 8.4.3 TrueTime管理leader租约83 8.4.4 TrueTime作用的总结85 参考文献85 第9章 分布式数据库CockroachDB86 9.1 CockroachDB的接口和数据模型86 9.2 CockroachDB的架构87 9.3 元数据存储的实现88 9.4 多副本存储的实现90 9.5 事务的实现92 9.5.1 单个事务的执行92 9.5.2 多个事务串行执行94 9.5.3 事务的并发执行96 参考文献106 第3部分  分布式算法 0章 共识算法Paxos108 10.1 Paxos的历史108 10.2 Consensus vs Paxos110 10.3 Basic Paxos算法111 10.3.1 共识问题111 10.3.2 算法简述113 10.3.3 选择值过程115 10.4 lti Paxos 算法132 10.4.1 多个实例132 10.4.2 独立实例运行的完整Paxos算法132 10.4.3 只运行一次prepare消息的完整Paxos算法137 10.5 复制状态机144 10.6 Paxos算法与复制状态机146 10.6.1 Paxos算法实现复制状态机146 10.6.2 空洞处理147 10.7 原子广播148 10.7.1 原子广播协议148 10.7.2 原子广播的模型148 10.7.3 原子广播的特性149 10.8 Paxos算法与原子广播149 10.8.1 Paxos consensus实例与原子广播149 10.8.2 Paxos的角色与原子广播150 参考文献151 1章 复制日志算法Raft152 11.1 Raft是复制日志的算法152 11.2 Raft算法的组成153 11.3 复制过程153 11.4 选举过程154 11.4.1 选举的基本条件154 11.4.2 任期155 11.4.3 完整的选举过程156 11.5 异常处理157 11.5.1 不一致异常157 11.5.2 一致性检查160 11.5.3 不提交旧的leader的entry160 参考文献162 2章 原子广播算法Zab163 12.1 Zab算法简述163 12.1.1 设计的Zab算法与ZooKeeper中实现的Zab算法163 12.1.2 Zab算法的阶段1 12.2 各版本Zab算法的共有部分1 12.2.1 Zab算法的基本概念1 12.2.2 Zab算法的broadcast阶段166 12.2.3 Zab算法的消息通道169 12.2.4 Zab算法的broadcast阶段的特性170 12.2.5 已提交的提议170 12.2.6 故障处理170 12.3 设计的Zab算法172 12.3.1 Phase0:election阶段173 12.3.2 Phase1:discovery阶段174 12.3.3 Phase2:synchronization阶段174 12.3.4 Phase3:broadcast阶段175 12.3.5 设计的Zab算法的问题176 12.3.6 设计的Zab算法处理leader故障176 12.4 Zab Pre 1.0算法177 12.4.1 leader election阶段177 12.4.2 recovery阶段177 12.4.3 Zab Pre 1.0算法处理leader宕机故障178 12.4.4 Zab Pre 1.0算法的缺陷179 12.5 Zab 1.0算法179 12.5.1 Phase0:leader election阶段180 12.5.2 Phase1:discovery阶段180 12.5.3 Phase2:synchronization阶段181 12.5.4 Zab 1.0算法处理leader宕机故障181 参考文献182 第4部分  一 致 性 3章 事务一致性与隔离级别184 13.1 ANSI的隔离级别185 13.1.1 ANSI的隔离级别定义185 13.1.2 对一致性的破坏186 13.1.3 脏写188 13.1.4 锁机制188 13.2 SI和SSI隔离级别190 13.2.1 MVCC190 13.2.2 SI隔离级别190 13.2.3 SSI隔离级别192 参考文献192 4章 顺序一致性193 14.1 顺序一致性的正式定义193 14.1.1 顺序一致性应用的范围193 14.1.2 顺序一致性的定义194 14.1.3 核心概念的解释195 14.1.4 定义解析198 14.1.5 在分布式系统中的定义200 14.1.6 举例说明200 14.2 理解顺序一致性202 14.2.1 顺序排序202 14.2.2 程序顺序202 14.2.3 顺序一致性是严苛的203 14.3 顺序一致性的其他描述204 14.3.1 种描述:全局视角一致204 14.3.2 第二种描述:允许重排序205 14.4 顺序一致性的作用206 14.4.1 并发条件206 14.4.2 原子性207 参考文献209 5章 线性一致性与强一致性210 15.1 什么是线性一致性210 15.1.1 预备概念211 15.1.2 定义213 15.2 判断系统是否满足线性一致性213 15.3 对线性一致性的理解与强一致性216 15.3.1 线性一致性的其他描述216 15.3.2 线性一致性与顺序一致性的比较217 15.3.3 强一致性218 15.4 ZooKeeper的一致性分析219 15.4.1 ZooKeeper是顺序一致性的219 15.4.2 ZooKeeper的一致性的作用221 15.4.3 ZooKeeper的一致性的描述222 参考文献223 6章 架构设计中的权衡225 16.1 什么是CAP定理225 16.1.1 CAP历史:从原则到定理225 16.1.2 CAP的定义226 16.1.3 CAP定理下的三种系统226 16.1.4 深入理解CAP定理中的P和A227 16.2 关于CAP定理的错误理解228 16.2.1 不是三选二,不能不选P228 16.2.2 不是三分法229 16.2.3 不该轻易放弃任何一个属性230 16.3 CAP中的权衡230 16.3.1 弱CAP原则230 16.3.2 CAP推动NoSQL231 16.3.3 分布式系统中的可用性和一致性231 1 进一步权衡:HAT和PACELC231 1.1 HAT232 1.2 权衡234 1.3 PACELC234 参考文献235
内容简介
一致性是很好重要的分布式技术。众所周知,分布式系统有很多特性,如可用性、可靠性等,这些特性多多少少会与一致性产生关系,受到一致性的影响。要全面研究、掌握分布式技术,一致性是绕不开的一个话题,也是难解决的一个问题。本书主要介绍GFS、HDFS、BigTable、MongoDB、RabbitMQ、ZooKeeper、Spanner、CockroachDB系统与一致性有关的实现细节,以及很好重要的Paxos、Raft、Zab分布式算法;本书还介绍了事务一致性与隔离级别、顺序一致性、线性一致性与强一致性相关内容,以及架构设计中的权衡等。从分布式技术的角度来说,本书讲解了分布式领域比较高阶的内容,但是从分布式一致性的角度来说,本书仍然是一致性的入门书。
作者简介
陈东明 著
陈东明: 饿了么北京技术中心架构组负责人,负责饿了么的产品线架构设计以及基础架构研发工作,开发eleme key-value数据库。曾任百度架构师负责百度即时通讯产品的架构设计。具有丰富的大规模系统构建和基础架构的硏发经验,善于复杂业务需求下的大并发、分布式系统设计和持续优化。