
LevelDB
fkuner
这个作者很懒,什么都没留下…
展开
-
leveldb源码解析系列—版本控制
文章目录VersionVersion原创 2022-03-29 09:43:04 · 231 阅读 · 0 评论 -
leveldb源码解析系列—SSTable
文章目录概述SSTable文件格式概述SSTable是一种文件的组织格式,存储了有序的key-value,并且持久化在磁盘等稳定存储中。当内存中的Memtable达到阈值后,会转为Immutable Memtable,LevelDB的后台线程执行Minor Compaction会将Immutable Memtable转储到磁盘上的SSTable中。SSTable文件格式SSTable的文件格式可以参考doc/table_format.md...原创 2022-03-17 21:44:40 · 591 阅读 · 0 评论 -
leveldb源码解析系列—Memtable
文章目录Memtable介绍Memtable数据结构Memtable比较器Memtable实现SkipListMemtable介绍Memtable是内存中管理key-value的数据结构,一条数据插入到WAL后,会插入到Memtable中,当Memtable达到一定大小时,会变成Immutable Memtable,从而转储到磁盘上的SSTable,进行持久化。涉及代码:db/memtable.h、db/memtable.cc、db/skiplist.h、db/skiplist.cc、db/dbfor原创 2022-03-17 11:25:59 · 812 阅读 · 0 评论 -
leveldb源码解析系列—基本数据结构
Key原创 2022-03-17 10:54:46 · 573 阅读 · 0 评论 -
leveldb源码解析系列—主要流程
GetWriteCompaction原创 2022-02-11 14:56:16 · 215 阅读 · 0 评论 -
leveldb源码解析系列—Log
Log文件组织方式前文《leveldb源码解析系列—整体架构》中提到了Log文件,本篇对Log文件的组织方式进行解析leveldb/doc/log_format.md中介绍了Log文件的组织方式The log file contents are a sequence of 32KB blocks. The only exception is that the tail of the file may contain a partial block.Each block consists of原创 2022-02-08 16:32:28 · 764 阅读 · 0 评论 -
leveldb源码解析系列1—基本数据结构
本篇介绍leveldb中基本的数据结构Sliceclass Slice { public: ... private: const char* data_; size_t size_;}封装了C语言风格的字符串,将data和size包装成Slice使用,直接操作指针避免不必要的数据拷贝,但是同样也增加了风险,需要使用者严格控制Slice内容的申请和释放Option...原创 2022-02-08 15:35:10 · 600 阅读 · 0 评论 -
leveldb源码解析系列0—准备工作
前言:闭门造车是不可取的,一股脑的写代码并不能带来质的提高,只有向更优秀的代码学习才能提高自己,最近一直想读一个质量高且符合我未来想从事方向的源码,但是我深知读源码的困难,害怕不能坚持下去最后也没有收获,所以迟迟没有开始。未来,我可能会从事分布式系统、数据库、存储相关领域,因此leveldb成为一个极佳的选择,再加上阅读leveldb的人数不少,可参考的资料必然不少,这也会降低我读源码的难度。废话不多说,以此博客系列来记录一下我学习的过程吧!收集到的参考资料:...原创 2022-01-10 18:18:04 · 424 阅读 · 0 评论