您好,欢迎来到聚文网。
登录
免费注册
网站首页
|
搜索
热搜:
磁力片
|
漫画
|
购物车
0
我的订单
商品分类
首页
幼儿
文学
社科
教辅
生活
销量榜
深入浅出存储引擎
字数: 506
出版社: 机械工业
作者: 文小飞
商品条码: 9787111753001
版次: 1
开本: 16开
页数: 364
出版年份: 2024
印次: 1
定价:
¥99
销售价:
登录后查看价格
¥{{selectedSku?.salePrice}}
库存:
{{selectedSku?.stock}}
库存充足
{{item.title}}:
{{its.name}}
加入购物车
立即购买
加入书单
收藏
精选
¥5.83
世界图书名著昆虫记绿野仙踪木偶奇遇记儿童书籍彩图注音版
¥5.39
正版世界名著文学小说名家名译中学生课外阅读书籍图书批发 70册
¥8.58
简笔画10000例加厚版2-6岁幼儿童涂色本涂鸦本绘画本填色书正版
¥5.83
世界文学名著全49册中小学生青少年课外书籍文学小说批发正版
¥4.95
全优冲刺100分测试卷一二三四五六年级上下册语文数学英语模拟卷
¥8.69
父与子彩图注音完整版小学生图书批发儿童课外阅读书籍正版1册
¥24.2
好玩的洞洞拉拉书0-3岁宝宝早教益智游戏书机关立体翻翻书4册
¥7.15
幼儿认字识字大王3000字幼儿园中班大班学前班宝宝早教启蒙书
¥11.55
用思维导图读懂儿童心理学培养情绪管理与性格培养故事指导书
¥19.8
少年读漫画鬼谷子全6册在漫画中学国学小学生课外阅读书籍正版
¥64
科学真好玩
¥12.7
一年级下4册·读读童谣和儿歌
¥38.4
原生态新生代(传统木版年画的当代传承国际研讨会论文集)
¥11.14
法国经典中篇小说
¥11.32
上海的狐步舞--穆时英(中国现代文学馆馆藏初版本经典)
¥21.56
猫的摇篮(精)
¥30.72
幼儿园特色课程实施方案/幼儿园生命成长启蒙教育课程丛书
¥24.94
旧时风物(精)
¥12.04
三希堂三帖/墨林珍赏
¥6.88
寒山子庞居士诗帖/墨林珍赏
¥6.88
苕溪帖/墨林珍赏
¥6.88
楷书王维诗卷/墨林珍赏
¥9.46
兰亭序/墨林珍赏
¥7.74
祭侄文稿/墨林珍赏
¥7.74
蜀素帖/墨林珍赏
¥12.04
真草千字文/墨林珍赏
¥114.4
进宴仪轨(精)/中国古代舞乐域外图书
¥24.94
舞蹈音乐的基础理论与应用
内容简介
全书分为3篇: 1.第1篇首先会详细讲解存储引擎的全貌,让读者能对存储引擎有一个整体的思维框架,介绍存储引擎的两大分支:基于b+树的存储引擎、基于lsm派系的存储引擎,其次对存储引擎部分涉及的一些数据结构、存储介质等概念做一个简要的介绍,为后面内容的深入学习做铺垫。 2.第二篇主要介绍基于b+树的存储引擎,在理论部分重点回答为什么选择b+树做存储引擎索引结构、b+树存储引擎解决哪些问题以及如何解决。在实践部分选择开源社区中比较有名的boltdb存储引擎项目来讲解其内部核心源码的实现细节。 3.第三篇主要介绍基于lsm派系的存储引擎,理论部分重点介绍lsm tree中各组件的功能及作用,并在此基础上扩展介绍其他几类lsm派系存储引擎的实现思路,帮助读者开阔视野,实践部分分别以bitcask、moss、leveldb等开源项目的核心源码来展开,介绍其内部实现细节。 通过阅读本书,读者不仅能对存储引擎,尤其是单机的存储引擎有一个整体的框架,而且能对两类存储引擎的实现思路及背后原理有个深刻的掌握,只有深刻理解了存储引擎的背后实现原理,读者不仅可以自己动手开发自己的存储引擎,更可以很快掌握关系型数据库或者NoSql这类组件的核心原理,对未来实际应用与开发提供参考。
作者简介
文小飞 (网名:jaydenwen/jaydenwen123),大厂资深研发工程师、公司级讲师。曾就职于腾讯等互联网公司,从事基础架构、后端开发、推荐系统架构等工作,具有丰富的基础架构经验。对技术充满热情,尤其对存储引擎、分布式共识算法等技术有较为深入的理解,曾编写开源书籍“自底向上分析 BoltDB 源码”,并发布“数据存储与检索”等网络课程。业余时间喜欢阅读开源项目源码,学习新技术。
目录
Contents 目 录 前言 第1章 存储引擎概述1 1.1 数据存储体系1 1.1.1 OLTP、OLAP与HTAP1 1.1.2 关系数据库、NoSQL数据库与 NewSQL数据库2 1.1.3 内存型存储组件与磁盘型存储 组件8 1.1.4 读多写少组件、写多读少组件 和读多写多组件9 1.1.5 数据存储与检索10 1.2 数据存储的核心:存储引擎10 1.2.1 存储引擎整体架构10 1.2.2 存储引擎的共性问题13 1.3 存储引擎的分类13 1.3.1 读多写少:基于B+树的存储 引擎14 1.3.2 写多读少:基于LSM派系的 存储引擎15 1.4 小结17 第2章 索引数据结构18 2.1 基础数据结构18 2.1.1 数组18 2.1.2 链表20 2.2 Hash类数据结构22 2.2.1 Hash表22 2.2.2 位图27 2.2.3 布隆过滤器28 2.3 二叉树类数据结构32 2.3.1 二叉搜索树33 2.3.2 红黑树36 2.3.3 跳表45 2.4 多叉树类数据结构48 2.4.1 B树49 2.4.2 B+树57 2.4.3 其他多叉树61 2.5 小结61 第3章 数据存储介质64 3.1 内存65 3.1.1 内存的基本内容65 3.1.2 内存管理机制69 3.1.3 虚拟内存管理机制80 3.2 持久化内存92 3.3 磁盘96 3.3.1 磁盘的基本内容97 3.3.2 磁盘管理机制102 3.3.3 加速磁盘访问的方案111 3.4 小结112 第4章 从宏观角度理解B+树存储 引擎的原理113 4.1 B+树存储引擎产生的起点114 4.1.1 诞生的背景114 4.1.2 设计的目标116 4.2 B+树存储引擎方案选型117 4.2.1 数据结构方案对比117 4.2.2 目光转向磁盘118 4.2.3 索引维护和存储121 4.2.4 选择B树还是B+树125 4.3 B+树存储引擎方案选型结果128 4.3.1 方案选型结果128 4.3.2 反向论证130 4.4 小结130 第5章 从微观角度理解B+树存储 引擎的工程细节132 5.1 边界条件处理132 5.1.1 B+树在磁盘和内存中的映射132 5.1.2 读操作的处理133 5.1.3 写操作的处理137 5.2 异常情况处理154 5.2.1 异常情况总体分析154 5.2.2 数据部分写入的异常处理156 5.3 事务158 5.3.1 事务的基本概念158 5.3.2 并发控制160 5.4 范围查询与全量遍历170 5.5 小结171 第6章 BoltDB核心源码分析172 6.1 BoltDB整体结构172 6.1.1 BoltDB项目结构172 6.1.2 BoltDB整体实现架构173 6.2 page解析175 6.2.1 page基本结构176 6.2.2 元数据页177 6.2.3 空闲列表页179 6.2.4 分支节点页183 6.2.5 叶子节点页186 6.3 node解析187 6.3.1 B+树结构概述187 6.3.2 node结构分析187 6.3.3 node的增删改查189 6.3.4 node分裂190 6.3.5 node合并195 6.4 Bucket解析199 6.4.1 Bucket结构分析199 6.4.2 Bucket遍历的Cursor核心 结构分析201 6.4.3 Bucket的增删改查206 6.4.4 KV数据的增删改查210 6.4.5 Bucket的分裂和合并211 6.5 Tx解析213 6.5.1 Tx结构分析213 6.5.2 Commit()方法分析214 6.5.3 Rollback()方法分析217 6.6 DB解析219 6.6.1 DB结构分析219 6.6.2 Open()方法分析221 6.6.3 Begin()方法分析224 6.6.4 Update()和View()方法分析226 6.6.5 Batch()方法分析227 6.7 小结229 第7章 深入理解LSM Tree原理232 7.1 LSM Tree的发展背景232 7.2 从零推导LSM Tree234 7.2.1 存储介质的选择234 7.2.2 写请求的处理234 7.2.3 读请求的处理239 7.3 LSM Tree的架构演进240 7.3.1 数据更新分类240 7.3.2 双组件LSM Tree结构241 7.3.3 多组件LSM Tree结构242 7.3.4 实际的LSM Tree结构243 7.4 LSM Tree的核心问题245 7.4.1 数据压缩/合并245 7.4.2 数据分区246 7.4.3 读放大、写放大和空间放大249 7.4.4 写放大优化251 7.5 小结252 第8章 LSM派系存储引擎253 8.1 LSM Tree存储引擎253 8.1.1 LSM Tree工程应用253 8.1.2 LSM Tree的KV分离存储 技术WiscKey256 8.2 LSM Hash存储引擎264 8.2.1 LSM Hash的起源264 8.2.2 Bitcask的核心原理265 8.3 LSM Array存储引擎269 8.3.1 LSM Array的设计思想269 8.3.2 Moss的核心原理270 8.4 其他LSM存储引擎274 8.4.1 LSM存储引擎扩展274 8.4.2 消息队列Kafka存储引擎275 8.5 小结277 第9章 LevelDB核心源码分析278 9.1 LevelDB概述278 9.1.1 LevelDB整体架构279 9.1.2 LevelDB项目结构280 9.2 DB核心接口分析282 9.2.1 DB结构282 9.2.2 Open(options,dbname,dbptr) 的实现284 9.2.3 Put(k,v)和Delete(k)的实现285 9.2.4 Get(k)的实现292 9.3 MemTable的实现分析294 9.3.1 MemTable结构294 9.3.2 Add(k,v)和Get(k)的实现295 9.3.3 SkipList结构297 9.4 WAL日志的实现分析302 9.4.1 WAL日志的格式302 9.4.2 Writer的实现303 9.4.3 Reader的实现307 9.5 SSTable的实现分析311 9.5.1 SSTable的数据格式312 9.5.2 Block的写入和读取316 9.5.3 SSTable的写入和读取325 9.5.4 SSTable的读取全过程334 9.6 Compact的实现分析338 9.6.1 Compact过程339 9.6.2 Minor Compact340 9.6.3 Major Compact 343 9.7 多版本的实现分析352 9.7.1 Version和VersionEdit结构352 9.7.2 VersionSet结构356 9.8 小结361 后记362
×
Close
添加到书单
加载中...
点此新建书单
×
Close
新建书单
标题:
简介:
蜀ICP备2024047804号
Copyright 版权所有 © jvwen.com 聚文网