RocksDB存储引擎技术解析
180 浏览量
更新于2024-08-27
收藏 762KB PDF 举报
RocksDB 是一个高性能的 Key-Value 数据库,设计了完善的持久化机制,保证性能和安全性,能够良好的支持范围查询。其核心组件包括内存结构 memtable、事务日志角色的 WAL 文件和持久化的 SST 文件。
1. RocksDB 的写入流程:数据首先写入到内存结构 memtable,当达到一定条件时将数据写入到 SST 文件,WAL 文件是可选的,用来恢复未写入到磁盘的 memtable。
2. RocksDB 的读取层次:memtable 和 SST 文件组成数据的全集,之上是缓存层,缓存为提升查询性能做了分片,底层都采用 hash 查询,不同缓存结构的区别在于热点数据的替换逻辑。
3. RocksDB 的缓存机制:缓存为提升查询性能做了分片,底层都采用 hash 查询,不同缓存结构的区别在于热点数据的替换逻辑。
4. RocksDB 的 memtable 结构:memtable 的结构有几种可选,本质都是排序的结构(为了支持范围查询)。其中之一是跳跃表,不了解跳跃表机制的读者可以简单理解为有序支持近似二分查找的时间复杂度为 log2(N) 的结构。
5. RocksDB 的 WAL 文件结构:WAL 文件按照写入的顺序来存储变长的 K-V,按照固定长度来分组存储(可能一个 K-V 跨多个分组)的目的是便于读取。
6. RocksDB 的 SST 文件结构:支持几种 SST 文件结构,上图为按照多块来存储的结构。每块的 K-V 都是有序的,而多块也是有序的。文件中包含元数据相关的信息,包括数据压缩字典、过滤器等。
7. RocksDB 的查询机制:直接访问 db 时,会持有文件句柄,这样多个 SST 文件合并时,已经被合并但被访问的文件就不能被删除。而快照机制保证了访问过程中文件能被删除(我并未想明白如何做到的),不过打开期间被删除的 key 的记录还会在新合并的文件里存在。
8. RocksDB 的快照机制:快照机制保证了访问过程中文件能被删除(我并未想明白如何做到的),不过打开期间被删除的 key 的记录还会在新合并的文件里存在。
9. RocksDB 的热点数据替换逻辑:不同的缓存结构的区别在于热点数据的替换逻辑。
10. RocksDB 的应用场景:RocksDB 是一个高性能的 Key-Value 数据库,适用于需要高性能和高可靠性的应用场景。
2019-04-02 上传
2014-04-29 上传
2013-11-14 上传
2012-11-15 上传
2013-05-16 上传
weixin_38746918
- 粉丝: 7
- 资源: 900
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库