LevelDB—一个超高性能的K/V数据库

数据库 其他数据库
Leveldb是一个google实现的非常高效的kv数据库,目前的版本1.2能够支持billion级别的数据量了。 在这个数量级别下还有着非常高的性能,主要归功于它的良好的设计。特别是LSM算法。

Leveldb是一个google实现的非常高效的kv数据库,目前的版本1.2能够支持billion级别的数据量了。 在这个数量级别下还有着非常高的性能,主要归功于它的良好的设计。特别是LSM算法。

LevelDB 是单进程的服务,性能非常之高,在一台4个Q6600的CPU机器上,每秒钟写数据超过40w,而随机读的性能每秒钟超过10w。

示例代码:

  1. #include   
  2. #include "leveldb/include/db.h"  
  3.  
  4. leveldb::DB* db;  
  5. leveldb::Options options;  
  6. options.create_if_missing = true;  
  7. leveldb::Status status = leveldb::DB::Open(options, "/tmp/testdb", &db);  
  8. assert(status.ok());  
  9.  
  10. std::string value;  
  11. leveldb::Status s = db->Get(leveldb::ReadOptions(), key1, &value);  
  12. if (s.ok()) s = db->Put(leveldb::WriteOptions(), key2, value);  
  13. if (s.ok()) s = db->Delete(leveldb::WriteOptions(), key1); 

授权协议: BSD

开发语言: C/C++ C/C++

操作系统: Linux  Linux 

【简单说下leveldb】

作者:黄东旭@youdao

最近在公司内有人讨论到leveldb,之前正好也简单看了看文档,没仔细看实现,简单写个总结

1. leveldb的committer阵容很强大,几乎是google那篇经典的big table的原班人马。虽然有人说可能并不是完整的google的使用着的实现,但是还是很吸引人的

2. 它是一个k/v db library,提供持久化,看项目首页给出的performance很牛逼, 注意目前只是library, 严格来说和tc有点像,并没有dht,甚至没有server实现,不过我相信网上很多蛋疼的hacker会写的,如果有时间的话,我也蠢蠢欲动啊。和Redis之类没法比,因为没有cache。

3. 针对随机写做了优化,使用了传说中的LSMTree,google的那篇paper里写了,但是没仔细看,在这里暂时不评论。我想应该是目前开源的唯一的LSMTree的kv db的实现(流行的大多数b-tree,其实lsmtree貌似是b-tree的一个优化)

4. 实现了iterator, 对data可以前序甚至逆序遍历,这点很新鲜

5. 类似batch,atom这种就不说了,基本是目前的标配

6. 8g一下, chrome中的indexedDB就是用它实现的

7. 居然还提供了ObjC的port

简单归结一句话:这个东西是个k-v本地存储库,读性能一般(和TokyoCabinet 比),随机写不错,很小很清凉。没有memcache,没有server,什么都没有,就是个存储引擎而已。

【编辑推荐】

 

  1. 淘宝海量数据库之克服随机IO难题
  2. 数据库如何抵抗随机IO的问题、方法与现实
  3. 一步一步设计你的数据库之不可轻视的需求分析
  4. 养成一个SQL好习惯带来一笔大财富
责任编辑:艾婧 来源: 开源中国社区
相关推荐

2014-05-07 14:09:20

Fourinone

2019-07-23 11:41:45

数据库SQLDocker

2015-03-13 19:34:41

2023-11-14 08:24:59

性能Scylla系统架构

2018-10-10 14:27:34

数据库连接池MySQL

2018-06-01 14:00:00

数据库MySQL分库分表

2019-06-26 07:25:47

NoSQL数据库开发

2018-01-15 15:35:15

数据库性能调优案例

2017-05-03 11:43:51

Redis数据库

2019-06-27 09:50:49

高性能秒杀系统

2013-06-19 09:20:53

Web开发Web性能优化高性能

2021-10-27 11:29:32

框架Web开发

2021-02-04 10:22:32

前端开发技术

2011-07-20 13:40:00

SQLite数据库查询数据

2018-02-25 17:30:18

2015-05-07 14:25:40

谷歌NoSQL数据库HBase

2011-03-30 10:52:07

SQL Server数服务器

2019-08-27 15:00:09

MySQL数据库存储

2011-08-18 18:18:05

MySQL数据库优化

2019-03-27 10:50:50

HTTP请求管线式
点赞
收藏

51CTO技术栈公众号