Leveldb源码解读(三)
Leveldb源码解读(三)
基本组件
1.1 哈希表
1.1.2 类接口
1.2缓存
1.2.1 LRU
1.2.2 LRUHandle
1.2.3Cache
1.2.4LRUCache
1.2.4.1基本结构
1.2.4.2重点函数讲解
1.2.5ShardedLRUCache
1.2.5.1 基本类
1.2.5.2 常见操作
1.3SST
1.3.1SST结构图
1.3.2BlockHandle
1.3.2.1类图
1.3.3Footer
1.3.3.1类图
1.3.3.2Footer写入过程
1.3.3.3Footer读取过程
1.3.4BlockBuilder
1.3.4.1类图
1.3.4.2共享key的压缩
1.3.4.3重启点
1.3.4.4 最直观的BlockBuilder
1.3.5 data block
1.3.5.1 写入流程
1.3.5.2 读取流程
1.3.6 index block
1.3.6.1 概述
1.3.6.2 写入流程
1.3.6.3 读取流程
1.3.7filter block
1.3.7.1基本结构
1.3.7.2写入流程
1.3.7.3读取流程
1.3.8 meta index block
1.3.8.1 写入流程
1.3.8.2读取流程
1.4 SST中的缓存
1.4.1 TableCache
1.4.2 TableCache的构建
1.4.3 TableCache的插入
1.4.2 TableCache的查询
1.5 Block中的缓存
1.5.1 Block缓存的构建
1.5.2Block缓存的插入
1.5.3 Block缓存的读取
1.6Table
1.6.1类图
1.6.2 BlockContents
1.6.3 Block
1.6.4Table读取流程
1.6.5 Table写入流程
1.7引用
Leveldb源码解读(三)
基本组件
1.1 哈希表
1.2缓存
1.2.1 LRU
1.2.2 LRUHandle
LRUHandle这个类主要是用于自定义的hashtable和lru中节点。
1.2.3Cache
纯虚基类。可以看看代码。
1.2.4LRUCache
前文我们给出了LRU的基本原理,以及Cache的基类组成。接下来,我们细看LRUCache。
1.2.4.1基本结构
1.2.4.2重点函数讲解
1.2.5ShardedLRUCache
1.2.5.1 基本类
1.2.5.2 常见操作
基本是调用内部接口
1.3SST