LevelDB
- 系统介绍
- 下载地址
- 常见问题
- 装机必备
- 大家都在用
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的要新。
-
hypermill2021
0MB | 2022-02-24
-
三菱plc编程软件
225.69MB | 2022-02-24
-
jdk8 64位
202.73MB | 2022-02-24
-
VisualFreeBasic国产编程IDE(替代易语言)v5.51
182.75MB | 2022-02-24
-
sublimetext
7.31MB | 2022-02-24
-
exescope
0.49MB | 2022-02-24
-
Yoga跨平台布局引擎
2.58MB | 2022-02-24
-
一鹤快手AAuto Studio
9.59MB | 2022-02-24
- Clash For Windows 2022-02-24
- Diffinity 2022-02-24
- FTool 2022-02-24
- ghostwriter 2022-02-24
- Inky 2022-02-24
- Processing 2022-02-24
- 小码精灵 2022-02-24
- CakePHP 2022-02-24
- Swagger UI 2022-02-24
- sqltoy 2022-02-24
-
hypermill2021详情
0MB | 2022-02-24
-
三菱plc编程软件详情
225.69MB | 2022-02-24
-
jdk8 64位详情
202.73MB | 2022-02-24
-
VisualFreeBasic国产编程IDE(替代易语言)v5.51详情
182.75MB | 2022-02-24
-
sublimetext详情
7.31MB | 2022-02-24
-
exescope详情
0.49MB | 2022-02-24