LevelDB-总体介绍

2022年1月开始看一下LevelDB开源代码
leveldb是一种基于operation log的文件系统,是Log-Structured-Merge Tree的典型实现。LSM源自Ousterhout和Rosenblum在1991年发表的经典论文 【The Design and Implementation of a Log-Structured File System 】

先看一下LevelDB中的几大组建:SkipList / Memtable/ SSTable。
在这里插入图片描述
图片来源

memtable && immutable && SSTable之间关系

memtable和immutable是存在内存中,用户进行插入/删除等操作实际操作的是memtable,当memtable内存空间不够的时候,levelDB会将immutable指向memtable的内存空间,然后重新申请内存给memtable。

一旦immutable不为空,levelDB就会吊起一个后台线程,将immutable中的内存落盘到磁盘中,即生成新的sstable。所有的sstable在levelDB中以层的形式存在,level0 level1 level2 … level_n。新的数据存储在低层中,最新的数据在level0中。

疑问:

  1. level的层信息存储在哪里。这个信息可能是一个持久化的信息,与数据库的名字进行绑定

引用:
个人认为比较好的介绍

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值