LevelDB 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
LevelDB 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
LevelDB 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 BSD
开发语言 C/C++ 查看源码 »
操作系统 Windows
软件类型 开源软件
开源组织
地区 不详
投 递 者 黄平俊
适用人群 未知
收录时间 2011-06-08

软件简介

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

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

示例代码:

#include "leveldb/include/db.h"

leveldb::DB* db;
leveldb::Options options;
options.create_if_missing = true;
leveldb::Status status = leveldb::DB::Open(options, "/tmp/testdb", &db);
assert(status.ok());

std::string value;
leveldb::Status s = db->Get(leveldb::ReadOptions(), key1, &value);
if (s.ok()) s = db->Put(leveldb::WriteOptions(), key2, value);
if (s.ok()) s = db->Delete(leveldb::WriteOptions(), key1);
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (4)

加载中

引用来自“笑天居士”的评论

看介绍,往内存写数据前会先写log到磁盘,那就是每次都有io到磁盘防止数据丢失,那这样怎样能保证高性能,肯定会比纯内存慢好多啊 LevelDB
2014年的评论了
2019/04/26 10:08
回复
举报
打分: 推荐
Linux下RocksDB、LevelDB、ForestDB性能测试对比 http://www.cnblogs.com/oloroso/p/6323400.html
2017/03/14 22:20
回复
举报
看介绍,往内存写数据前会先写log到磁盘,那就是每次都有io到磁盘防止数据丢失,那这样怎样能保证高性能,肯定会比纯内存慢好多啊 LevelDB
2014/10/27 22:44
回复
举报
写入性能远强于读取性能,数据量增大后,读写性能下降趋平缓。 #LevelDB#
2016/05/16 22:23
回复
举报
更多评论
发表了资讯
2011/08/01 00:00

OSChina 8-1 期推荐 K/V数据库 LevelDB

OSChina 8-1 期(8月第1周)推荐的开源软件是Leveldb。LevelDB是一个google实现的非常高效的kv数据库,目前的版本1.2能够支持billion级别的数据量了。 在这个数量级别下还有着非常高的性能,主要归功于它的良好的设计。特别是LSM算法。 LevelDB 是单进程的服务,性能非常之高,在一台4个Q6600的CPU机器上,每秒钟写数据超过40w,而随机读的性能每秒钟超过10w。 示例代码: #include #include "leveldb/include/db.h" leveldb...

10
16
发表了资讯
2011/07/29 00:00

Google 正式开源 LevelDB 项目

Google 宣布 LevelDB 项目开源,使用的开源授权协议为 BSD。 Leveldb是一个google实现的非常高效的kv数据库,目前的版本1.2能够支持billion级别的数据量了。 在这个数量级别下还有着非常高的性能,主要归功于它的良好的设计。特别是LSM算法。 LevelDB 是单进程的服务,性能非常之高,在一台4个Q6600的CPU机器上,每秒钟写数据超过40w,而随机读的性能每秒钟超过10w。 示例代码: #include #include "leveldb/include/db.h" l...

18
38
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
2018/04/17 15:18

leveldb

python -m pip install leveldb 如果成功,那就什么都不用管了 我在centos 上用这个命令直接安装成功 ``` pip install leveldb ``` **失败的解决办法** 1. 编译安装,编译安装比较麻烦,我也没有试过,下面是别人的经验 [Windows上编译安装py-leveldb](https://blog.csdn.net/shenck1992/article/details/50504470) 2. 直接将编译好的放入即可 Python2.7: [Google Drive](https://drive.google.com/open?id=0B0OhXbSTAU1HcFBJUT...

2
0
发表了博客
2014/01/07 05:45

leveldb

下载最新版本leveldb(我使用的是leveldb1.15.0) http://code.google.com/p/leveldb/downloads/list git地址https://code.google.com/p/leveldb/ mingw编译用到c++11,需要用到mingw中gcc版本>=4.80 #==================================== 1.build_detect_platform文件的case "$TARGET_OS" in中加上: MINGW*) PLATFORM=OS_MINGW COMMON_FLAGS="$MEMCMP_FLAG -D_REENTRANT -DOS_MINGW" PLATFORM_CCFLAGS="-I/D/CLib/boost_1....

0
0
发表了博客
2014/10/08 16:43

leveldb学习

SST文件 :数据文件 -- sstable格式 *.log : 数据库日志文件 -- 顺序记录所有数据库操作,用来恢复数据 CURRENT : 文本文件,表明当面的manifest文件 LOCK :空文件,数据库锁,防止多进程访问 LOG : 日志文件,文本格式 LOG.old :上一次的日志文件 MANIFEST: 数据库状态文件 leveldb研究8- 内存中的数据结构Memtable/SkipList leveldb性能分析 - 随机写...

0
2
发表了博客
2014/06/19 11:16

leveldb 介绍

Leveldb 是基于op log的一个系统,首先将写入的数据append log中,然后放入内存队列,后台线程定期的将 内存中的数据加入 SSTABLE , 当删除数据的时候,不是真正的删除,而是做一个标记,后台线程后在后期删除 SSTable 磁盘的最终持久化 SSTable逻辑上可分为两大块,数据存储区Data Block,以及各种Meta信息。 Meta Block 中使用了 布隆过滤器,快速定位一个key 是否在 一个data block中...

0
0
发表于数据库专区
2019/10/15 12:26

LevelDB:使用介绍

LevelDB 提供的接口其实很简单,下面举例进行简单说明。 安装 git clone https://github.com/google/leveldb cd leveldb mkdir -p build && cd build cmake -DCMAKE_BUILD_TYPE=Release .. && cmake --build . make install Code Demo #include <iostream> #include <cassert> #include "leveldb/db.h" #include "leveldb/write_batch.h" int main() { // Open a database. leveldb::DB* db; leveldb::O...

0
0
发表于DevOps专区
2012/09/24 10:33

leveldb入门知识

LevelDB是google开源的一个key-value存储引擎库,类似于开源的Lucene索引库一样。其他的软件开发者可以利用该库做二次开发,来满足定制需求。LevelDB采用日志式的写方式来提高写性能,但是牺牲了部分读性能。为了弥补牺牲了的读性能,一些人提议使用SSD作为存储介质。 对于本地化的Key-value存储引擎来说,简单的使用一般都分成三个基本的步骤:(1)打开一个数据库实例;(2)对这个数据库实例进行插入,修改和查询操作;(3)最...

5
53
发表了博客
2013/06/02 13:02

Leveldb 实现原理

原文地址:http://www.cnblogs.com/haippy/archive/2011/12/04/2276064.html 郑重声明:本篇博客是自己学习 Leveldb 实现原理时参考了郎格科技系列博客整理的,原文地址:http://www.samecity.com/blog/Index.asp?SortID=12,只是为了加深印象,本文的配图是自己重新绘制的,大部分内容与原文相似,大家可以浏览原始页面 :-),感兴趣的话可以一起讨论 Leveldb 的实现原理! LevelDb日知录之一:LevelDb 101 说起LevelDb也许您不...

0
8
2017/11/16 11:51

LevelDB实现原理

LevelDb日知录之一:LevelDb 101   说起LevelDb也许您不清楚,但是如果作为IT工程师,不知道下面两位大神级别的工程师,那您的领导估计会Hold不住了:Jeff Dean和Sanjay Ghemawat。这两位是Google公司重量级的工程师,为数甚少的Google Fellow之二。   Jeff Dean其人:http://research.google.com/people/jeff/index.html,Google大规模分布式平台Bigtable和MapReduce主要设计和实现者。   Sanjay Ghemawat其人:http://...

0
1
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了问答
2013/08/31 13:48

转: 单实例支撑每天上亿个请求的SSDB

SSDB 是一个 C++ 开发的 NoSQL 存储服务器, 支持 zset, map 数据结构, 可替代 Redis, 特别适合存储集合数据. SSDB 被开发和开源出来后, 已经在生产环境经受了3个季度的考验, 一直稳定运行. 在一个支撑数千万用户的列表数据(例如用户的订单历史, 用户的好友列表, 用户的消息列表等)的实例上, SSDB 每天处理上亿个读写请求, 仍然能保持 CPU 占用在3%左右, 内存占用为 1G. 这种数据规模是我们原来使用的 Redis 所无法满足的, 因为 ...

19
18
发表了问答
2016/07/12 12:56

leveldb 产生大量ldb文件,导致IO error

在大批量写入的时候,leveldb会产生很多2M的后缀为ldb的文件,将static const int kTargetFileSize = 2 * 1048576; 设置为32* 1048576;会产生好多32M的ldb文件,最终导致文件描述符不够用,而出现IO error: /var/lib/ceph/gbcm/002056.ldb: Too many open files。 -rw-r--r-- 1 root root 33M Jul 12 09:33 002472.ldb -rw-r--r-- 1 root root 33M Jul 12 09:33 002473.ldb -rw-r--r-- 1 root root 33M Jul 12 09:33 002474.ldb...

8
1
发表了问答
2014/08/30 22:02

公开一个高度兼容Redis的基于成熟kv存储引擎的存储服务Ardb

这个项目从开始到现在已经断断续续开发大约快两年了,之前只在reddit的programming板块发布过,最近感觉完成度已经算比较高了,准备逐步公开。 需要注意的是, 由于项目支持90%以上redis命令, 以及可以和实际redis实例互为主备,支持Redis sentinel, 内置二维空间索引实现等,特性较多,目前自动测试覆盖率并不完全,算不上绝对稳定可靠,应用到生产环境需谨慎(目前已经在生产环境运行的实例只涵盖较少部分redis命令) 感兴趣...

5
5
发表了问答
2014/09/30 17:04

基于Ardb/Redis构建基于位置实时服务

Ardb是一个高性能完全兼容Redis协议的nosql实现,在Redis现有协议命令外,还增加了空间索引能力的支持,可用于构建LBS基于位置实时服务。 相关实现也可移植到Redis上。 详见 http://my.oschina.net/yinqiwen/blog/323633

1
8
发表了问答
2013/01/08 11:57

我自己写的LevelDB服务器

Google 开源的 LevelDB 是一个单纯的 key-value 存储的类库, 可以理解为是一个存储引擎, 并不是常见意义的服务器. 你无法通过网络接口来使用它, 只能用 C/C++ 语言才能使用它. 所以, 我封装了一个网络服务器 - SSDB, 支持 PHP, Python, Cpy, C/C++, 有感兴趣的同学可以看看. 目前已经有实际应用, 非常稳定! 最重要的, SSDB 支持类似 Redis 里的 zset(但不完全). 项目主页: https://code.google.com/p/zdb/ (在国外, 无法访问的同...

5
11
发表了问答
2014/11/25 16:31

为什么writeoptions.sync在false和true下,测试出的结果差不多呢

我用php操作leveldb,为什么writeoptions.sync在false和true下,测试出的结果差不多呢,都是45W左右 按理说,这个选项对性能影响很大啊,应该差很多啊? <?php /* defau lt open options */ $options = array(   'create_if_missing' => true,  // if the specified database didn't exist will create a new one   'error_if_exists'  => false,  // if the opened database exsits will throw exception   'paranoid_checks'  => fal...

2
0
发表了问答
2014/11/15 08:55

leveldb怎样解决并发更新

一个key值为500,你我都get到了,然后我加300,put 800,可是你却加100,put 600,最终值为600,但是希望的结果是900 leveldb只有put操作,那怎样实现这个问题,key有没有乐观锁版本号的

4
1
发表了问答
2014/10/28 10:19

leveldb数据完全性及性能问题

看到leveldb的一个文档,向memtable写数据之前会先写log,那意味着每写一次内存都写LOG到磁盘,那么性能如何保证?如果LOG不到磁盘,如何保证极端情况下,如掉电后的数据不丢失呢?

9
1
发表了问答
2013/08/26 20:38

SSDB 配置文件

SSDB 的配置非常简单, 附带的 ssdb.conf 你不用修改便可以使用. 如果你要高度定制, 还是需要修改一些配置的. 下面做介绍. SSDB 的配置文件是一种层级 key-value 的静态配置文件, 通过一个 TAB 缩进来表示层级关系. 以 ‘#’ 号开始的行是注释. 标准的配置文件如下: # ssdb-server config # relative to path of this file, must exist work_dir = ./var pidfile = ./var/ssdb.pid server:   ip: 127.0.0.1   port: 8888 replic...

10
0
发表了问答
2013/01/09 18:24

SSDB(LevelDB服务器) VS Redis

完整的性能对比在: http://www.ideawu.com/ssdb/

7
2
发表了问答
2013/09/26 22:07

SSDB Windows安装包

SSDB 预编译的 Windows 可执行安装包 另外, SSDB 提供了预编译的 Windows 下的可执行安装包, Windows 用户可以下载后直接运行 ssdb-server.exe. Windows 下的 SSDB 依赖 cygwin, 所以附带了几个 dll 文件. 使用方式: 1. 从 https://github.com/ideawu/ssdb-bin 下载可执行文件 ssdb-server.exe 和相关 dll. 2. 从 https://github.com/ideawu/ssdb 下载 ssdb.conf 配置文件. 3. 解压, 然后从开始菜单中运行 cmd.exe. 4. 在 cmd....

5
8
发表了问答
2011/06/09 09:56

K/V 最近高速发展啊.

Leveldb是一个google实现的非常高效的kv数据库,目前的版本1.2能够支持billion级别的数据量了。 在这个数量级别下还有着非常高的性能,主要归功于它的良好的设计。特别是LSM算法。 LevelDB 是单进程的服务,性能非常之高,在一台4个Q6600的CPU机器上,每秒钟写数据超过40w,而随机读的性能每秒钟超过10w。 对 40W很有感觉, 对 4个Q6600 更有感觉...

18
6
发表了问答
2012/10/07 23:08

查看源码的方法有哪些?

经常听大牛们说要看什么什么的源码,我想问下怎么获得这些源码?或者查看源码的方法有哪些?比如说我想LevelDB的源码。请教下,谢谢!

6
0
发表了问答
2012/08/23 14:39

亲 是LSM算法 还是LMS算法 ?

亲 是LSM算法 还是LMS算法 ?

2
0
发表了问答
2011/10/17 22:35

Cassandra 新特性:分层压缩

Cassandra的 数据模型借鉴自Google的BigData模型,简单来说就是将写操作放在一个内存块中,当内存块大小达到一定大小时,将内存中的数据排序后写成一个 sstable文件,而这种方式会有一些问题,而前段时间Google的Chromium团队开发的一个开源的key-value存储以其分层压缩机制给了大家一种新的思路,Cassandra也适时的将这种思路引入到Cassandra中,也就是今天我们要介绍的Cassandra的分层压缩。 目前的压缩机制:Tiered Compacti...

2
2
发表了问答
2011/09/26 22:27

LevelDB 学习交流

下面PPT作者是@淘宝解伦,PPT中对LevelDB的特点、设计思想及实现原理都有所涵盖,是一篇不错的LevelDB入门教材。对LevelDB感兴趣的同学可以看看。 Google LevelDB Study Discuss

1
8
发表了问答
2011/08/21 09:19

LevelDB内部实现

作者:Jeff Dean, Sanjay Ghemawat 原文:leveldb.googlecode.com 译者:phylips@bmy 译文:duanple.blog.163.com Files LevelDB的实现本质上类似于Bigtable中的tablet(参见Bigtable论文5.3节)。但是,与论文中的具体的文件组织方式稍有不同,解释如下: 每个数据库由一组存储在指定目录下的一个文件集合组成。有如下几种文件类型: Log files 日志文件(*.log)存储了最近的一系列更新。每个更新操作会被追加到当前的日志文件中。...

2
5
发表了问答
2011/08/04 22:22

LevelDB 和 Kyoto Cabinet 的性能比较

本文翻译自:http://maxpert.tumblr.com/ 作者通过各种情况下对 Google 新兴的 LevelDB 和老牌的 Kyoto Cabinet 进行实际的数据对比性能测试。 1. 小字符串数据插入(10万条数据) Kyoto Cabinet 100,000 entries: Time consumed was 0.328945 Time consumed was 0.207315 Time consumed was 0.286653 Time consumed was 0.210296 Time consumed was 0.284954 Time consumed was 0.208595 LevelDB 100,000 entries: Time consu...

3
1
发表了问答
2011/07/31 11:24

用Kyoto Tycoon挂载LevelDB存储

Kyoto Tycoon(以下简称KT)是TokyoTyrant的作者Mikio Hirabayashi 的系列作品之一,KT 是一个数据库网络层服务,它提供一个插件机制,可以挂载几乎所有的数据库存储设备。之前已经有过KT嫁接Memcached 的案例。 本文要讲的是最近Google开源的持久化key-value存储系统LevelDB ,性能相当不错。Mikio刚刚在KT最新版本上实现了对LevelDB 的挂载程序。下面是具体安装过程: 1.安装LevelDB 先获取源代码 $ svn checkout http://leve...

2
10
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
4 评论
480 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部