LevelDB整体结构

1.文件结构(主要的几个目录)

db

数据库一些接口实现,版本管理,比较器,日志等实现

port

存放一些移植相关的文件

include

函数库的头文件

util

一些功能函数

table

sstable实现

helpers

底层全内存环境的实现

issues

一些测试

2. 整体层次

内存中为memtable,到一定数量会变成immutable memtable(不可写)往磁盘存,磁盘上的level会按一定规则进行归并。

介绍:

memtable:内存中的map,可以使用get和put来操作

wal:write ahead log,日志,做异常恢复

sstable:sort string table ,按照key的顺序存储在磁盘上,key有序,且多了后会合并成一个大的sstable保证查找效率,写效率通过非原地更新(即写入新的,不查找然后更新老的)来实现顺序写,提高效率。

manifset:元数据,记录当前数据有哪些sstable,这些sstable属于那一层,每个sstable的基本信息(key的范围,文件大小等)

current:记录了当前使用的manifset是哪一个

3. 接口文件基本介绍(include中)

c.h

实现c语言相关接口,extern "C"

cache.h

缓存相关,实现LRU

comparator.h

比较器接口

db.h

数据库操作接口

dumpfile.h

读取文件导出

env.h

操作文件接口,如读写等

export.h

导出相关,不同操作系统不同导出定义

filter_policy.h

布隆过滤器接口

iterator.h

迭代器接口

options.h

配置定义

slice.h

字符串接口

status.h

操作状态定义

table_builder.h

SSTable构造

table.h

SSTable接口

write_batch.h

批量写入接口

代码版本:leveldb: LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员学习随笔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值