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

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

我们提供的服务有:网站制作、网站设计、微信公众号开发、网站优化、网站认证、岭东ssl等。为成百上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的岭东网站制作公司

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,什么都没有,就是个存储引擎而已。

分享文章:LevelDB—一个超高性能的K/V数据库
URL标题:http://www.shufengxianlan.com/qtweb/news47/480347.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联