首页>参考读物>计算机科学与技术>数据库

深入浅出存储引擎
作者 : 文小飞 著
丛书名 : 数据库技术丛书
出版日期 : 2024-05-08
ISBN : 978-7-111-75300-1
定价 : 99.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 :
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

全书分为3篇:
1.第1篇首先会详细讲解存储引擎的全貌,让读者能对存储引擎有一个整体的思维框架,介绍存储引擎的两大分支:基于b+树的存储引擎、基于lsm派系的存储引擎,其次对存储引擎部分涉及的一些数据结构、存储介质等概念做一个简要的介绍,为后面内容的深入学习做铺垫。
2.第二篇主要介绍基于b+树的存储引擎,在理论部分重点回答为什么选择b+树做存储引擎索引结构、b+树存储引擎解决哪些问题以及如何解决。在实践部分选择开源社区中比较有名的boltdb存储引擎项目来讲解其内部核心源码的实现细节。
3.第三篇主要介绍基于lsm派系的存储引擎,理论部分重点介绍lsm tree中各组件的功能及作用,并在此基础上扩展介绍其他几类lsm派系存储引擎的实现思路,帮助读者开阔视野,实践部分分别以bitcask、moss、leveldb等开源项目的核心源码来展开,介绍其内部实现细节。
通过阅读本书,读者不仅能对存储引擎,尤其是单机的存储引擎有一个整体的框架,而且能对两类存储引擎的实现思路及背后原理有个深刻的掌握,只有深刻理解了存储引擎的背后实现原理,读者不仅可以自己动手开发自己的存储引擎,更可以很快掌握关系型数据库或者NoSql这类组件的核心原理,对未来实际应用与开发提供参考。

图书特色

某互联网大厂资深工程师撰写,多年领域实践经验总结,带你吃透存储引擎底层原理与实践技巧,攻克业务难题
作者以问题引导式讲解,全面剖析存储引擎特性、高频数据结构、存储介质,并重点深入讲解B+树和LSM派系引擎的宏观原理、微观设计要点与主流源码实现

上架指导

计算机\数据库

封底文字

数据库(尤其像TiDB这样的分布式数据库)是一个极其复杂的系统,我也是从存储引擎开始进入这个领域的。几乎一切计算机的软硬件知识都被存储引擎串联起来,似乎所有的秘密都蕴藏其中,但它又蕴含着某种“简单”的特质,通过几个简单的接口便能工作。当你无限地深入探索,它又像《爱丽丝梦游仙境》里的兔子洞一样错综复杂。我见证了存储引擎技术的日新月异。从单机存储到分布式存储,从行存储到列存储,从磁盘到内存,渐渐习得:软件是一门关于取舍的艺术,这一点在存储引擎领域体现得淋漓尽致。每一种技术和数据结构的背后都蕴含着一些取舍,了解各种主流存储引擎的实现原理是理解这些取舍的最佳方式,本书将带你一窥究竟。无论你是刚入门,还是已有一定经验,只要怀着对数据库技术的热爱和执着,不畏惧扰人的“迷雾”,你终将所获颇丰。
——黄东旭,PingCAP CTO

本书结合实际应用场景,深入剖析B+树和LSM树的原理与实现,使复杂概念变得易懂。作为有十几年数据库管理经验的从业者,我曾在国内大型互联网公司负责大规模MySQL/NoSQL的集群管理。本书不仅帮我解决了实际问题,还启发了我对存储技术的深入思考。我相信,本书能帮助从业者深入理解存储引擎原理和应用,提升数据处理和优化能力。我诚挚推荐本书,希望它能成为你学习存储技术的得力助手。
——梁飞龙,互联网数据库专家

推荐所有从事软件开发的朋友都花时间好好阅读本书。本书不仅包含存储引擎的特定知识,还涵盖软件工程领域一些典型应用场景的深度剖析,以及对应的解决方案。相信你的收获将远超“存储”范畴。这种系统、底层的知识能帮助你分析和解决各类应用问题。
——熊义林,腾讯文档技术总监、后端技术专家

人类文明自建立以来就出现了对数据存储的需求。过去10年,移动互联网推动存储技术在量级、性能、可用性、一致性等方向取得了突破。未来10年,AI将会继续推动存储技术的演进。本书不仅引领读者学习具体技术知识,还带领读者从系统设计者的角度去思考问题,是系统学习存储技术的佳作,推荐阅读。
——杨天琳,某大型互联网公司后台技术专家

作者简介

文小飞 著:作者简介
文小飞 (网名:jaydenwen/jaydenwen123),大厂资深研发工程师、公司级讲师。曾就职于腾讯等互联网公司,从事基础架构、后端开发、推荐系统架构等工作,具有丰富的基础架构经验。对技术充满热情,尤其对存储引擎、分布式共识算法等技术有较为深入的理解,曾编写开源书籍“自底向上分析 BoltDB 源码”,并发布“数据存储与检索”等网络课程。业余时间喜欢阅读开源项目源码,学习新技术。

图书目录

深入浅出存储引擎 (0.1.00002021)

第一部分:存储引擎基础知识
第1章存储引擎概述
1.1数据存储体系
1.2数据存储的核心--存储引擎
1.2.1数据的格式:组织方式
1.2.2数据的读写:索引结构
1.2.3数据的终点:存储介质
1.3存储引擎的分类
1.3.1基于b+树的存储引擎
1.3.2基于lsm派系的存储引擎
1.4小结
第2章索引数据结构
2.1基础数据结构
2.1.1数组
2.1.2链表
2.2哈希类数据结构
2.2.1哈希表
2.2.2位图
2.2.3布隆过滤器
2.3二叉树类的数据结构
2.3.1二叉树
2.3.2红黑树
2.3.3跳表
2.4多叉树类的数据结构
2.4.1b树
2.4.2b+树
2.4.3art树
2.5小结
第3章数据存储的介质
3.1内存
3.2磁盘
3.2.1机械磁盘
3.2.2固态硬盘
3.3磁盘读写原理
3.3.1磁盘读写的过程
3.3.2加速磁盘访问的两种方案
3.4小结
第二部分:基于b+树的存储引擎
第4章宏观角度理解b+树存储引擎理论原理
4.1最初的起点
4.1.1背景
4.1.2目标
4.2解决问题的思路
4.2.1数据结构方案对比
4.2.2目光转向磁盘
4.2.3直观思路出发
4.2.4索引矛盾点
4.2.5选择b树还是b+树
4.3最终结果
4.3.1结论
4.3.2反向论证
第5章微观角度理解b+树存储引擎工程细节
5.1 正常流程
5.1.1如何写数据
5.1.2如何读数据
5.1.3如何映射
5.2边界条件
5.2.1插入数据过小
5.2.2插入/更新数据过大:页分裂
5.2.3删除数据:页合并
5.3异常情况
5.3.1数据写入中途异常
5.3.2数据写入后未刷盘异常
5.4事务
5.4.1事务特性
5.4.2事务隔离级别
5.4.3事务实现方案
5.5全表扫描
5.6小结
第6章boltdb核心源码分析
6.1boltdb简要介绍
6.1.1boltdb是什么?
6.1.2为什么要分析boltdb?
6.1.3boltdb的简单用法
6.1.4boltdb的整体数据组织结构
6.2boltdb核心数据结构分析
6.2.1boltdb page结构
6.2.2元数据页
6.2.3空闲列表页
6.2.4分支节点页
6.2.5叶子节点页
6.3boltdb b+树(Bucket、node)分析
6.3.1boltdb的Bucket结构
6.3.2Bucket遍历之Cursor
6.3.3node节点的相关操作
6.3.4Bucket的相关操作
6.3.5key&value的插入、获取、删除
6.3.6Bucket的页分裂、页合并
6.4boltdb事务控制
6.4.1boltdb事务简介
6.4.2boltdb事务Tx定义
6.4.3Begin()实现
6.4.4Commit()实现
6.4.5Rollback()实现
6.5boltdb的DB对象分析
6.5.1DB结构
6.5.2对外接口
6.5.3Open()实现分析
6.5.4db.View()实现分析
6.5.5db.Update()实现分析
6.5.6db.Batch()实现分析
6.6参考资料
6.7小结
第三部分:基于lsm派系的存储引擎
第7章深入理解lsm tree原理
7.1为什么会有lsm tree
7.2推导lsm tree原理
7.2.1数据选择何种存储介质
7.2.2数据如何写(大量写)
7.2.3数据如何读
7.2.4总结
7.3学术界提出的lsm tree
7.4lsm tree在工程上的应用
7.4.1leveldb/rocksdb
7.4.2hbase
7.4.3cassandra
7.4.4badger
7.5小结
第8章其他lsm派系其他存储引擎
8.1lsm hash模型原理
8.1.1数据组织方式
8.1.2数据读写过程
8.1.3数据合并原理
8.1.4工程应用:bitcask
8.2lsm array模型原理
8.2.1数据组织方式
8.2.2数据读写过程
8.2.3数据合并原理
8.2.4工程应用:moss
8.3lsm模型其他变形
8.3.1数据无合并
8.3.2消息队列存储模型简介
8.4小结
第9章leveldb核心源码分析
9.1leveldb整体架构
9.2leveldb读写过程
9.2.1memtable
9.2.2sstable
9.3leveldb压缩合并
9.3.1major压缩
9.3.2minor压缩
9.4小结
第10章bitcask核心源码分析
10.1bitcask整体架构
10.2bitcask数据存储
10.3bitcask查询
10.4bitcask合并
10.5小结
第11章moss核心源码分析
11.1moss整体架构
11.2moss数据存储
11.3moss数据合并
11.4moss数据持久化
11.5读写请求过程
11.6小结
后记

教学资源推荐
作者: [美]迪卫艾肯特?阿格拉沃尔(Divyakant Agrawal) 苏迪皮托?达斯(Sudipto Das) 阿姆鲁?埃尔?阿巴迪(Amr El Abbadi) 著
作者: 周玲艳 张希
参考读物推荐
作者: 潘晓 霍峥 孟小峰 编著
作者: Paul Dorsey等
作者: [印度]A. 奥利(A. Ohri) 著