万本电子书0元读

万本电子书0元读

顶部广告

数据库系统内幕电子书

本书从数据库发者角度,对现代数据库技术行了全景式解读,完全不拘泥于任何一款数据库系统,也不偏袒任何一种数据库的类型或特性。这本书只会讨论现代数据库必不可少的那些东西,例如存储格式、索引数据结构、数据一致性等,以及相关的许多选项与权衡。*部分从单机的角度,介绍磁盘存储格式、索引数据结构、事务处理等,第二部分则以分布式系统切,讲解分布式数据库的多副本、分布式事务、一致性等问题。书中内容的选材紧跟业内前沿展,不仅有提及各种新兴的数据库产品,还有涉及许多来自学术界前沿的研究成果。不论你是一名有志于从事云计算领域的发者,深的研究数据库系统的设计与实现,还是作为一名发者,即将使用云数据库以及云原生数据库,阅读本书都会大有裨益。

售       价:¥

纸质售价:¥89.20购买纸书

117人正在读 | 0人评论 6.2

作       者:(美)亚历克斯·彼得罗夫(Alex Petrov)

出  版  社:机械工业出版社

出版时间:2020-05-01

字       数:26.8万

所属分类: 科技 > 计算机/网络 > 计算机理论与教程

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
本书旨在指导发者理解现代数据库和存储引擎背后的内部概念,包含从众多书籍、论文、博客和多个源数据库源代码中精心选取的相关材料。本书深介绍了数据存储、数据构建块、分布式系统和数据集群,并且指出了现代数据库之间*重要的区别在于决定存储结构和数据分布的子系统。本书分为两部分:*部分讨论节本地的程,并关注数据库系统的核心组件——存储引擎,以及*重要的一个特有元素;第二部分探讨如何将多个节组织到一个数据库集群中。本书主要面向数据库发人员,以及使用数据库系统构建软件的人员,如软件发人员、运维工程师、架构师和工程技术经理。  <br/>【推荐语】<br/>本书从数据库发者角度,对现代数据库技术行了全景式解读,完全不拘泥于任何一款数据库系统,也不偏袒任何一种数据库的类型或特性。这本书只会讨论现代数据库必不可少的那些东西,例如存储格式、索引数据结构、数据一致性等,以及相关的许多选项与权衡。*部分从单机的角度,介绍磁盘存储格式、索引数据结构、事务处理等,第二部分则以分布式系统切,讲解分布式数据库的多副本、分布式事务、一致性等问题。书中内容的选材紧跟业内前沿展,不仅有提及各种新兴的数据库产品,还有涉及许多来自学术界前沿的研究成果。不论你是一名有志于从事云计算领域的发者,深的研究数据库系统的设计与实现,还是作为一名发者,即将使用云数据库以及云原生数据库,阅读本书都会大有裨益。<br/>【作者】<br/>作者简介 Alex Petrov是一位数据基础架构工程师,数据库和存储系统的狂热爱好者,Apache Cassandra 提交者和PMC成员,精通存储、分布式系统和算法。 译者简介 黄鹏程 毕业于北京邮电大学,过去八年一直专注于数据库和大数据平台研发与架构工作。毕业后就职于中国民生银行,历任软件工程师及大数据基础架构团队负责人,目前为阿里云高级产品专家,负责阿里云数据库相关产品的设计与规划工作。你可以通过搜索“gnuhpc”在LinkedIn或者微信上找到他。   傅宇 毕业于南京大学计算机系,专注于数据库技术,现任阿里云技术专家,担任 PolarDB-X 分布式关系型数据库内核研发工作,在分布式事务、查询优化器、执行器等方向略有经验,对数据库和大数据领域充满热情。个人博客:https://ericfu.me,知乎账号 Eric Fu,欢迎与我交流!   张晨 毕业于上海交通大学。大数据、数据库、分布式系统和函数式编程爱好者。现于Indeed东京担任软件工程师一职。你可以通过 我的个人主页chasezhang.me了解更多信息。<br/>
目录展开

O’Reilly Media,Inc.介绍

本书赞誉

推荐序一

推荐序二

推荐序三

译者序

前言

第一部分 存储引擎

第1章 简介与概述

1.1 数据库架构

1.2 内存数据库与磁盘数据库

1.3 面向列与面向行的数据库

1.3.1 面向行的数据布局

1.3.2 面向列的数据布局

1.3.3 区别与优化

1.3.4 宽列式存储

1.4 数据文件和索引文件

1.4.1 数据文件

1.4.2 索引文件

1.4.3 间接的主索引

1.5 缓冲、不可变性和有序性

1.6 本章小结

第2章 B树基础知识

2.1 二分搜索树

2.1.1 树的平衡

2.1.2 基于磁盘存储的树

2.2 基于磁盘的结构

2.2.1 机械硬盘

2.2.2 固态硬盘

2.2.3 磁盘存储结构

2.3 无处不在的B树

2.3.1 B树的层次结构

2.3.2 分隔键

2.3.3 B树查找复杂度

2.3.4 B树查找算法

2.3.5 键的数目

2.3.6 B树的节点分裂

2.3.7 B树的节点合并

2.4 本章小结

第3章 文件格式

3.1 动机

3.2 二进制编码

3.2.1 原始类型

3.2.2 字符串和变长数据

3.2.3 按位打包的数据:布尔值、枚举值和标志

3.3 通用原理

3.4 页的结构

3.5 分槽页

3.6 单元格布局

3.7 将单元格放进分槽页

3.8 管理变长数据

3.9 版本

3.10 校验和

3.11 本章小结

第4章 B树的实现

4.1 页头

4.1.1 魔数

4.1.2 同级指针

4.1.3 最右指针

4.1.4 节点的高键

4.1.5 溢出页

4.2 二分搜索

4.3 传播分裂与合并

4.4 再平衡

4.5 仅在右侧追加

4.6 压缩

4.7 清扫与维护

4.7.1 更新和删除导致的碎片

4.7.2 页的碎片整理

4.8 本章小结

第5章 事务处理与恢复

5.1 缓冲区管理

5.1.1 缓存语义

5.1.2 缓存回收

5.1.3 在缓存中锁定页

5.1.4 页置换

5.2 恢复

5.2.1 日志语义

5.2.2 操作日志与数据日志

5.2.3 steal和force策略

5.2.4 ARIES

5.3 并发控制

5.3.1 可串行化

5.3.2 事务隔离

5.3.3 读异常和写异常

5.3.4 隔离级别

5.3.5 乐观并发控制

5.3.6 多版本并发控制

5.3.7 悲观并发控制

5.3.8 基于锁的并发控制

5.4 本章小结

第6章 B树的变体

6.1 写时复制

6.2 抽象节点更新

6.3 惰性B树

6.3.1 WiredTiger

6.3.2 惰性自适应树

6.4 FD树

6.4.1 分段级联

6.4.2 对数级的有序段

6.5 Bw树

6.5.1 更新链

6.5.2 用CAS控制并发

6.5.3 结构修改操作

6.5.4 合并和垃圾收集

6.6 缓存无关B树

6.7 本章小结

第7章 日志结构存储

7.1 LSM树

7.1.1 LSM树的结构

7.1.2 更新与删除

7.1.3 LSM树的查找

7.1.4 合并迭代

7.1.5 协调

7.1.6 LSM树的维护

7.2 读写放大与空间放大

7.3 实现细节

7.3.1 有序字符串表

7.3.2 布隆过滤器

7.3.3 跳表

7.3.4 磁盘访问

7.3.5 压缩

7.4 无序LSM存储

7.4.1 Bitcask

7.4.2 WiscKey

7.5 LSM树中的并发

7.6 日志堆叠

7.6.1 闪存转换层

7.6.2 文件系统日志记录

7.7 LLAMA与精心堆叠

7.8 本章小结

第一部分总结

第二部分 分布式系统

第8章 简介与概述

8.1 并发执行

8.2 分布式计算的误区

8.2.1 处理

8.2.2 时钟和时间

8.2.3 状态一致性

8.2.4 本地和远程执行

8.2.5 处理故障的需要

8.2.6 网络分区和部分故障

8.2.7 级联故障

8.3 分布式系统抽象

8.4 两将军问题

8.5 FLP不可能定理

8.6 系统同步性

8.7 故障模型

8.7.1 崩溃故障

8.7.2 遗漏故障

8.7.3 任意故障

8.7.4 故障处理

8.8 本章小结

第9章 故障检测

9.1 心跳和ping

9.1.1 无超时的故障检测器

9.1.2 外包心跳

9.2 phi增量故障检测器

9.3 Gossip和故障检测

9.4 反向故障检测

9.5 本章小结

第10章 领导者选举

10.1 霸道选举算法

10.2 依次故障转移

10.3 候选节点/普通节点优化

10.4 邀请算法

10.5 环算法

10.6 本章小结

第11章 复制和一致性

11.1 实现可用性

11.2 臭名昭著的CAP理论

11.2.1 小心使用CAP

11.2.2 收成与产量

11.3 共享内存

11.4 顺序

11.5 一致性模型

11.5.1 严格一致性

11.5.2 可线性化

11.5.3 顺序一致性

11.5.4 因果一致性

11.6 会话模型

11.7 最终一致性

11.8 可调一致性

11.9 见证者副本

11.10 强最终一致性和CRDT

11.11 本章小结

第12章 反熵和传播

12.1 读修复

12.2 摘要读

12.3 提示移交

12.4 Merkle树

12.5 位图版本向量

12.6 Gossip传播

12.6.1 Gossip技术细节

12.6.2 覆盖网络

12.6.3 混合Gossip

12.6.4 局部视图

12.7 本章小结

第13章 分布式事务

13.1 多个操作的原子性

13.2 两阶段提交

13.2.1 2PC中的参与者故障

13.2.2 2PC中的协调者故障

13.3 三阶段提交

13.4 Calvin分布式事务

13.5 Spanner分布式事务

13.6 数据库分区

13.7 Percolator分布式事务

13.8 协调避免

13.9 本章小结

第14章 共识

14.1 广播

14.2 原子广播

14.2.1 虚同步

14.2.2 Zookeeper原子广播

14.3 Paxos

14.3.1 Paxos算法

14.3.2 Paxos的Quorum

14.3.3 故障场景

14.3.4 Multi-Paxos

14.3.5 快速Paxos

14.3.6 平等Paxos

14.3.7 柔性Paxos

14.3.8 共识的推广解法

14.4 Raft

14.4.1 Raft中的领导者角色

14.4.2 故障场景

14.5 拜占庭共识

14.5.1 PBFT算法

14.5.2 恢复和检查点

14.6 本章小结

第二部分总结

参考文献

作者介绍

译者介绍

封面介绍

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部