`
hideto
  • 浏览: 2645650 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

leveldb资料整理

阅读更多
leveldb介绍
http://code.google.com/p/leveldb/
http://en.wikipedia.org/wiki/LevelDB
http://highscalability.com/blog/2011/8/10/leveldb-fast-and-lightweight-keyvalue-database-from-the-auth.html
http://news.ycombinator.com/item?id=2526032
http://basho.com/blog/technical/2011/07/01/Leveling-the-Field/
http://blog.yufeng.info/archives/1327
http://www.slideshare.net/sunzhidong/google-leveldb-study-discuss

leveldb官方文档
http://leveldb.googlecode.com/svn/trunk/doc/index.html
http://leveldb.googlecode.com/svn/trunk/doc/benchmark.html
http://leveldb.googlecode.com/svn/trunk/doc/impl.html
http://leveldb.googlecode.com/svn/trunk/doc/table_format.txt
http://leveldb.googlecode.com/svn/trunk/doc/log_format.txt

leveldb内部实现和源码解析
http://blog.xiaoheshang.info/?cat=26
http://rdc.taobao.com/blog/cs/?p=1378
http://www.cnblogs.com/haippy/archive/2011/12/04/2276064.html

bigtable/mapreduce/gfs/lsm-tree/skiplist论文
http://blademaster.ixiezi.com/2010/03/27/bigtable:一个分布式的结构化数据存储系统中文版/
http://blademaster.ixiezi.com/2010/03/27/google-mapreduce中文版/
http://blademaster.ixiezi.com/2010/03/27/the-google-file-system中文版/
http://staff.ustc.edu.cn/~jpq/paper/flash/1996-The%20Log-Structured%20Merge-Tree%20%28LSM-Tree%29.pdf
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.15.9072&rep=rep1&type=pdf

Tair ldb
http://rdc.taobao.com/blog/cs/?p=1394
http://code.taobao.org/p/tair/wiki/index/
http://code.taobao.org/p/tair/src/branches/ldb/src/storage/ldb/

相关资料
http://www.quora.com/What-is-an-SSTable-in-Googles-internal-infrastructure
http://www.ningoo.net/html/tag/dynamo
http://wiki.apache.org/cassandra/MemtableSSTable
http://wiki.apache.org/cassandra/ArchitectureSSTable
http://en.wikipedia.org/wiki/Queuing_theory
http://rdc.taobao.com/team/jm/archives/1344

Notes
leveldb的Write/Delete:
DB::Put/Delete(DB::Open时*dbptr = impl) => DBImpl::Write => (1) 写log: log_->AddRecord (2) 写memtable: WriteBatchInternal::InsertInto(updates, mem_)

leveldb的Get:
DBImpl::Get => (1) 查memtable: mem->Get (2) 查immutable memtable: imm->Get (3) 查文件 versions_->current() => current->Get => Version::Get

leveldb的Compaction:
leveldb在Open/Get/Write时都有可能做Compaction: DB::Open/DBImpl::Get/DBImpl::Write(DBImpl::MakeRoomForWrite) =>DBImpl::MaybeScheduleCompaction => env_->Schedule(&DBImpl::BGWork, this) => (1) 启后台线程 PosixEnv::Schedule (2) DBImpl::BGWork => DBImpl::BackgroundCall => DBImpl::BackgroundCompaction

leveldb的多线程写:
DBImpl::Write的瓶颈在AcquireLoggingResponsibility,多线程写同一个db时互相竞争logger_,性能反而没有单写线程快. 所以为了scale,对leveldb做sharding,将key做hash后分到多个db,这样多线程读写不会相互竞争,经测试 num_threads : num_dbs为1:1时性能最好,充分利用多核

leveldb的性能调优:
通过sharding/batch writes/increase block_size(size per data block, default 4KB)/increase block_cache(LRUCache, default 8MB)/increase write_buffer_size(memtable size, default 4MB)来提高性能,经过测试,单机24-core采用16 threads/16 shards/1000 batch_sizes/block_size 8K/write_buffer_size 32MB能达到70w+ ops/sec的写性能
分享到:
评论
1 楼 boyhailong 2013-03-04  
收集的比较全面

相关推荐

    Leveldb lmdb性能对比

    Leveldb lmdb性能对比Leveldb lmdb性能对比Leveldb lmdb性能对比Leveldb lmdb性能对比Leveldb lmdb性能对比Leveldb lmdb性能对比Leveldb lmdb性能对比Leveldb lmdb性能对比Leveldb lmdb性能对比Leveldb lmdb性能对比...

    C#操作LevelDB数据

    WPF下使用现有类库操作LevelDB数据库,且解析JSON字符串并显示;test_db目录为测试使用的LevelDB数据库,数据为JSON字符串。

    leveldb测试程序

    linux下c++实现leveldb的添加数据,查询数据,对于学习理解leveldb很有帮助

    ARM32 架构的 php_leveldb数据库

    自己编译的leveldb.so文件。 这是一个适用于arm32架构的php模块, leveldb数据库懂得都懂 下载文件中含一个压缩包(这是源码,同样含有编译样例) 一个 leveldb.so文件 这是我编译的自己用的leveldb模块,试过了...

    leveldb实现解析.pdf

    leveldb实现解析.pdf

    leveldb,leveldb到java的端口.zip

    这是leveldb在

    leveldb-1.18 源码及 leveldb实现解析.PDF

    免积分,最新的 leveldb-1.18 源码及leveldb实现解析

    leveldb源码工程Windows版

    leveldb源码工程Windows版,使用vs2010编译通过。有问题可以参考根目录下的Windows文件(使用notepad打开)

    leveldb_leveldbdb_bench_leveldb_

    LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.

    levelDB 日知录 by 格朗科技

    非常适合新手看的leveldb入门资料,整体架构,各模块功能概述,实现原理等!

    leveldb 1.70

    leveldb 1.70

    LevelDB手册(LevelDB Handbook).pdf

    leveldb是一个写性能十分优秀的存储引擎,是典型的LSM树(Log Structured-Merge Tree)实现。LSM树的核心思想就是放弃部分读的性能,换取最大的写入能力。

    leveldb.zip

    build->debug->lib build->release->lib lib路径 leveldb -->vs2015 版本

    leveldb 源码解释 阅读情况

    leveldb源码分析 比较全面讲解leveldb leveldb 是 Google 开源的持久化 KV 单机存储引擎,开源页面 http://code.google.com/p/leveldb/。 针对存储面对的普遍随机 IO 问题,leveldb 采用了 merge-dump 的方式,将...

    leveldb源码

    leveldb 源码,源于google 官方github 源码,解压缩即可

    mnist-leveldb.7z

    mnist-leveldb.7z 深度学习caffe mnist 数据集在windows上可以使用

    leveldb源码分析

    leveldb源码分析

    leveldb代码注释.zip

    leveldb是Jeff Dean 和 Sanjay Ghemawat 两位超级大神实现的高效 kv 数据库。本资料对leveldb源码进行了详细的注释,可以帮助初学者快速的阅读源码,了解设计的思想。

    C#读取LevelDB数据

    WPF下使用现有类库读取LevelDB数据库,且解析JSON字符串并显示 test_db 测试使用的LevelDB数据库 数据为JSON字符串

    python-leveldb 32位 windows

    python-leveldb库, python2.6 32位 for windows

Global site tag (gtag.js) - Google Analytics