51系统家园网 - 专业的win11纯净版系统下载、免费绿色软件下载!
最新更新 系统重装教程(一看就会视频+图文版)
当前位置: 首页 > 软件下载 > 编程软件
LevelDB

LevelDB

LevelDB
  • 软件大小:0.31MB
  • 软件类型:编程软件
  • 系统语言:英文
  • 更新日期:2022-02-24
  • 软件厂商:互联网
  • 安全检测:
立即下载
  • 系统介绍
  • 下载地址
  • 常见问题
  • 装机必备
  • 大家都在用

LevelDB是一款可以使用自定义函数来进行数值的排序和覆盖,且软件体积轻小。而且软件中的功能多样,可以满足用户们在多种环境下使用。有需要的小伙伴,快来下载试试吧!

LevelDB介绍:

1、这是一款非常强大的函数计算软件,是学习高数的必备神器。

2、软件体积非常小,拥有非常丰富的功能,满足用户的各种需求。

3、兼容性非常好,可以在不同的系统中运行,流畅运算各种函数。

LevelDB特点:

1、支持批量操作,用户可以导入大量的函数,快速分析数值之间的关系。

2、使用Snappy智能压缩数据,防止数据过大,导致电脑突然卡顿、死机。

3、强大的移植性,计算出的结果可以导出为文档、图片等等,快速转发。

LevelDB限制:

1、非关系数据模型(NoSQL),不支持SQL语句,不支持。

2、只有一个进程可以访问特定的数据库。

3、没有内置C/S体系结构,但开发人员可以使用级别DB库封装服务器。

LevelDB安装及使用方法:

一、python版本的示例。

1、安装依赖于pip install leveldb。

2、插入数据示例。

3、生成一个目录db,包含若干文件。

4、各个文件的含义。

(1)CURRENT.

(2)LOG.

(3)LOCK.

(4)MANIFEST.

5、下图是LevelDB运行一段时间后的存储模型快照:

(1)内存中的MemTable和Immutable MemTable以及磁盘上的几种主要文件:

(2)Current文件,Manifest文件,log文件以及SSTable文件。

(3)当然,LevelDb除了这六个主要部分还有一些辅助的文件,

但是以上六个文件和数据结构是LevelDb的主体构成元素。

6、log文件、MemTable、SSTable文件都是用来存储k-v记录的,

下面再说说manifest和Current文件的作用。

(1)SSTable中的某个文件属于特定层级,而且其存储的记录是key有序的。

(2)那么必然有文件中的最小key和最大key,这是非常重要的信息,

Manifest 就记载了SSTable各个文件的管理信息。

(3)比如属于哪个Level,文件名称叫啥,最小key和最大key各自是多少。

(4)下图是Manifest所存储内容的示意.

7、另外,在LevleDb的运行过程中,随着Compaction的进行,

SSTable文件会发生变化,会有新的文件产生,老的文件被废弃,

Manifest也会跟着反映这种变化,此时往往会新生成Manifest文件来记载这种变化,

而Current则用来指出哪个Manifest文件才是我们关心的那个Manifest文件。

二、读写数据。

1、顺序写入磁盘log文件;

2、写入内存memtable(采用skiplist结构实现);

3、写入磁盘SST文件(sorted string table files),这步是数据归档的过程(永久化存储);

注意:

log文件的作用是是用于系统崩溃恢复而不丢失数据,假如没有Log文件,

因为写入的记录刚开始是保存在内存中的,此时如果系统崩溃,

内存中的数据还没有来得及Dump到磁盘,所以会丢失数据;

在写memtable时,如果其达到check point(满员)的话,

会将其改成immutable memtable(只读),然后等待dump到磁盘SST文件中,

此时也会生成新的memtable供写入新数据;

memtable和sst文件中的key都是有序的,log文件的key是无序的;

LevelDB删除操作也是插入,只是标记Key为删除状态,

真正的删除要到Compaction的时候才去做真正的操作;

LevelDB没有更新接口,如果需要更新某个Key的值,

只需要插入一条新纪录即可;或者先删除旧记录,再插入也可;

4、读操作流程:

(1)在内存中依次查找memtable、immutable memtable。

(2)如果配置了cache,查找cache。

(3)根据mainfest索引文件,在磁盘中查找SST文件。

(4)举个例子:

1、我们先往levelDb里面插入一条数据 {key="www.samecity.com" value="我们"},

2、过了几天,samecity网站改名为:69同城,此时我们插入数据{key="www.samecity.com" value="69同城"},

3、同样的key,不同的value;逻辑上理解好像levelDb中只有一个存储记录,

4、即第二个记录,但是在levelDb中很可能存在两条记录,即上面的两个记录都在levelDb中存储了,

5、此时如果用户查询key="www.samecity.com",我们当然希望找到最新的更新记录,

6、也就是第二个记录返回,因此,查找的顺序应该依照数据更新的新鲜度来,对于SSTable文件来说,

7、如果同时在level L和Level L+1找到同一个key,level L的信息一定比level L+1的要新。

相关下载
相关文章
更新推荐
同类下载排行 软件下载总排行
装机必备 更多