LevelDB原理深入学习

2018-11-18  本文已影响0人  蓝Renly

LevelDB原理补充

对于LevelDB的学习,在博客和维基以及百度上学习了一些基本概念和原理,但还是不是十分理解,于是重新进入LevelDB的官网,终于在最下面找到了一篇关于LevelDB介绍及原理说的比较好的文章,于是总结一些!

文章网址:http://web.archive.org/web/20130502222338/http://dailyjs.com/2013/04/19/leveldb-and-node-1/

共有三个部分,主要介绍LevelDBV及其原理,以及其在node中的使用,我这里只总结第一篇,关于LevelDB的介绍以及原理.

1.LevelDB是什么

LevelDB是一个开源的,无依赖,内含键值对的数据库.

C++写的,主语基于Google的BigTable写的.

特点

基础架构

Log Structured Merge(LSM) Tree

日志结构化合并树

[图片上传失败...(image-2d0fe6-1542542626540)]

字符串排序表文件(SST)

表文件层次结构

表文件不是以简单的顺序存储,而是按照一系列级别进行组织.这是LevelDB中的"级别".

来自log中的entry直接被组织到级别0,一组最多4个文件.当其它条目的强制级别0多于4个文件时,将选择其中一个SST文件并与级别1的SST文件合并,这是一组最多10MB的文件.此过程继续,如果级别溢出,一次以以文件形式与下一级别重叠的SST文件合并.

[图片上传失败...(image-41c09c-1542542626540)]

日志: 最大大小为4MB(可配置),然后刷新为一组0级SST文件
0级: 最多4个SST文件,然后一个文件压缩到1级
1级: 最大总大小为10MB,然后将一个文件压缩为级别2
2级: 最大总大小为100MB,然后将一个文件压缩为3级
3级以上: 最大总大小为10 x之前的级别,然后将一个文件压缩到下一级别

0↠4SST,1↠10M,2↠100M,3↠1G,4↠10G,5↠100G,6↠1T,7↠10T

在该数据库中,您拥有大量的成熟数据和更多不稳定的新数据集;

高级功能

上一篇 下一篇

猜你喜欢

热点阅读