热门搜索: 中考 高考 考试 开卷17
服务电话 024-23945002/96192
 

深入浅出存储引擎

编号:
wx1203263319
销售价:
¥87.12
(市场价: ¥99.00)
赠送积分:
87
数量:
   
商品介绍

1.实战积淀,资深工程师倾囊相授:本书由互联网大厂资深工程师撰写,凝聚其多年一线实践经验,为读者提供了宝贵的存储引擎底层原理与实战攻略,助力高效掌握关键技术,从容解决业务挑战。
2.问题导向,深度揭秘存储引擎:作者创新采用问题引导式教学法,通过一系列精心设计的问题逐步揭示存储引擎的奥秘,包括存储引擎特性、高频数据结构及存储介质等方面内容,让读者轻松理解并深化记忆。
3.两大主流引擎深度解析:书中详尽阐述了B+树和LSM派系存储引擎的宏观原理与微观设计,辅以主流源码实现解读,让您既能把握整体架构,又能洞悉细微之处,全面提升对存储引擎的认知水平。
4.理论联系实际,案例丰富:全书结合实际应用场景,以BoltDB和LevelDB为实例,细致剖析存储引擎的实际运作机制,无论是初学者还是资深开发者,都能从中获得深刻理解和实战指导。
5.业界权威人士鼎力推荐:多位来自腾讯、PingCAP等知名企业的数据库技术专家联袂推荐,一致认为本书对于理解存储引擎原理、提升数据处理与优化能力具有重要价值,是每一位软件开发者及数据库从业者深入研究存储技术的理想读本。

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

Contents    目    录<br />前言<br />第1章  存储引擎概述1<br />1.1  数据存储体系1<br />1.1.1  OLTP、OLAP与HTAP1<br />1.1.2  关系数据库、NoSQL数据库与<br />       NewSQL数据库2<br />1.1.3  内存型存储组件与磁盘型存储<br />       组件8<br />1.1.4  读多写少组件、写多读少组件<br />       和读多写多组件9<br />1.1.5  数据存储与检索10<br />1.2  数据存储的核心:存储引擎10<br />1.2.1  存储引擎整体架构10<br />1.2.2  存储引擎的共性问题13<br />1.3  存储引擎的分类13<br />1.3.1  读多写少:基于B+树的存储<br />       引擎14<br />1.3.2  写多读少:基于LSM派系的<br />       存储引擎15<br />1.4  小结17<br />第2章  索引数据结构18<br />2.1  基础数据结构18<br />2.1.1  数组18<br />2.1.2  链表20<br />2.2  Hash类数据结构22<br />2.2.1  Hash表22<br />2.2.2  位图27<br />2.2.3  布隆过滤器28<br />2.3  二叉树类数据结构32<br />2.3.1  二叉搜索树33<br />2.3.2  红黑树36<br />2.3.3  跳表45<br />2.4  多叉树类数据结构48<br />2.4.1  B树49<br />2.4.2  B+树57<br />2.4.3  其他多叉树61<br />2.5  小结61<br />第3章  数据存储介质64<br />3.1  内存65<br />3.1.1  内存的基本内容65<br />3.1.2  内存管理机制69<br />3.1.3  虚拟内存管理机制80<br />3.2  持久化内存92<br />3.3  磁盘96<br />3.3.1  磁盘的基本内容97<br />3.3.2  磁盘管理机制102<br />3.3.3  加速磁盘访问的方案111<br />3.4  小结112<br />第4章  从宏观角度理解B+树存储<br />  引擎的原理113<br />4.1  B+树存储引擎产生的起点114<br />4.1.1  诞生的背景114<br />4.1.2  设计的目标116<br />4.2  B+树存储引擎方案选型117<br />4.2.1  数据结构方案对比117<br />4.2.2  目光转向磁盘118<br />4.2.3  索引维护和存储121<br />4.2.4  选择B树还是B+树125<br />4.3  B+树存储引擎方案选型结果128<br />4.3.1  方案选型结果128<br />4.3.2  反向论证130<br />4.4  小结130<br />第5章  从微观角度理解B+树存储<br />  引擎的工程细节132<br />5.1  边界条件处理132<br />5.1.1  B+树在磁盘和内存中的映射132<br />5.1.2  读操作的处理133<br />5.1.3  写操作的处理137<br />5.2  异常情况处理154<br />5.2.1  异常情况总体分析154<br />5.2.2  数据部分写入的异常处理156<br />5.3  事务158<br />5.3.1  事务的基本概念158<br />5.3.2  并发控制160<br />5.4  范围查询与全量遍历170<br />5.5  小结171<br />第6章  BoltDB核心源码分析172<br />6.1  BoltDB整体结构172<br />6.1.1  BoltDB项目结构172<br />6.1.2  BoltDB整体实现架构173<br />6.2  page解析175<br />6.2.1  page基本结构176<br />6.2.2  元数据页177<br />6.2.3  空闲列表页179<br />6.2.4  分支节点页183<br />6.2.5  叶子节点页186<br />6.3  node解析187<br />6.3.1  B+树结构概述187<br />6.3.2  node结构分析187<br />6.3.3  node的增删改查189<br />6.3.4  node分裂190<br />6.3.5  node合并195<br />6.4  Bucket解析199<br />6.4.1  Bucket结构分析199<br />6.4.2  Bucket遍历的Cursor核心<br />  结构分析201<br />6.4.3  Bucket的增删改查206<br />6.4.4  KV数据的增删改查210<br />6.4.5  Bucket的分裂和合并211<br />6.5  Tx解析213<br />6.5.1  Tx结构分析213<br />6.5.2  Commit()方法分析214<br />6.5.3  Rollback()方法分析217<br />6.6  DB解析219<br />6.6.1  DB结构分析219<br />6.6.2  Open()方法分析221<br />6.6.3  Begin()方法分析224<br />6.6.4  Update()和View()方法分析226<br />6.6.5  Batch()方法分析227<br />6.7  小结229<br />第7章  深入理解LSM Tree原理232<br />7.1  LSM Tree的发展背景232<br />7.2  从零推导LSM Tree234<br />7.2.1  存储介质的选择234<br />7.2.2  写请求的处理234<br />7.2.3  读请求的处理239<br />7.3  LSM Tree的架构演进240<br />7.3.1  数据更新分类240<br />7.3.2  双组件LSM Tree结构241<br />7.3.3  多组件LSM Tree结构242<br />7.3.4  实际的LSM Tree结构243<br />7.4  LSM Tree的核心问题245<br />7.4.1  数据压缩/合并245<br />7.4.2  数据分区246<br />7.4.3  读放大、写放大和空间放大249<br />7.4.4  写放大优化251<br />7.5  小结252<br />第8章  LSM派系存储引擎253<br />8.1  LSM Tree存储引擎253<br />8.1.1  LSM Tree工程应用253<br />8.1.2  LSM Tree的KV分离存储<br />  技术WiscKey256<br />8.2  LSM Hash存储引擎264<br />8.2.1  LSM Hash的起源264<br />8.2.2  Bitcask的核心原理265<br />8.3  LSM Array存储引擎269<br />8.3.1  LSM Array的设计思想269<br />8.3.2  Moss的核心原理270<br />8.4  其他LSM存储引擎274<br />8.4.1  LSM存储引擎扩展274<br />8.4.2  消息队列Kafka存储引擎275<br />8.5  小结277<br />第9章  LevelDB核心源码分析278<br />9.1  LevelDB概述278<br />9.1.1  LevelDB整体架构279<br />9.1.2  LevelDB项目结构280<br />9.2  DB核心接口分析282<br />9.2.1  DB结构282<br />9.2.2  Open(options,dbname,dbptr)<br />  的实现284<br />9.2.3  Put(k,v)和Delete(k)的实现285<br />9.2.4  Get(k)的实现292<br />9.3  MemTable的实现分析294<br />9.3.1  MemTable结构294<br />9.3.2  Add(k,v)和Get(k)的实现295<br />9.3.3  SkipList结构297<br />9.4  WAL日志的实现分析302<br />9.4.1  WAL日志的格式302<br />9.4.2  Writer的实现303<br />9.4.3  Reader的实现307<br />9.5  SSTable的实现分析311<br />9.5.1  SSTable的数据格式312<br />9.5.2  Block的写入和读取316<br />9.5.3  SSTable的写入和读取325<br />9.5.4  SSTable的读取全过程334<br />9.6  Compact的实现分析338<br />9.6.1  Compact过程339<br />9.6.2  Minor Compact340<br />9.6.3  Major Compact 343<br />9.7  多版本的实现分析352<br />9.7.1  Version和VersionEdit结构352<br />9.7.2  VersionSet结构356<br />9.8  小结361<br />后记362<br />

商品参数
基本信息
出版社 机械工业出版社
ISBN 9787111753001
条码 9787111753001
编者 文小飞
译者 --
出版年月 2024-05-01 00:00:00.0
开本 16开
装帧 平装
页数 364
字数 506
版次 1
印次 1
纸张
商品评论

暂无商品评论信息 [发表商品评论]

商品咨询

暂无商品咨询信息 [发表商品咨询]