转自:http://hideto.iteye.com/blog/1328921

最近一段时间在学习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的写性能

leveldb资料整理相关推荐

  1. epoll相关资料整理

    http://www.cppblog.com/converse/archive/2008/10/13/63928.html epoll相关资料整理 学习epoll有一段时间了,最近终于有一个服务器采用 ...

  2. 深入理解计算机系统 -资料整理 高清中文版_在所不辞的博客-CSDN博客_深入理解计算机系统第四版pdf

    深入理解计算机系统 -资料整理 高清中文版_在所不辞的博客-CSDN博客_深入理解计算机系统第四版pdf

  3. STM32 资料整理贴(更新到10年1月)[转]

    看到9G从QQ群上转的,后来还有没贴完 ,后面还有一大堆 链接地址 http://www.stmsky.com/bbs/viewthread.php?tid=2103&extra=page%3 ...

  4. H.264的一些资料整理

    本文转载自 http://blog.csdn.net/ljzcom/article/details/7258978, 如有需要,请移步查看. Technorati 标签: H.264 资料整理 --- ...

  5. [资料整理] Decentralized Services Orchestration, Choreography相关的几篇论文

    昨天讨论了一下论文笔记管理的方法, 我以前用过各种做论文笔记的方法. 打算逐步整理一下以前的论文笔记, 标题里注明为"[资料整理]". M. G. Nanda, S. Chandr ...

  6. 【方案】0615冰箱运行监测系统资料整理:进展及规划

    公众号关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 资料整理重点内容回顾 改名字:冰箱运行监测系统 需求:[S操作]冰箱正常运行监控系统 ...

  7. 文字检测与识别资料整理

    博主关注文字检测和识别,资料整理和论文解读都非常详细: https://www.cnblogs.com/lillylin/p/6893500.html#4033329 博主的阅读习惯,积累和输出输出: ...

  8. LPS25HB 气压计 资料整理

    LPS25HB 气压计 资料整理 文章目录 LPS25HB 气压计 资料整理 LPS25HB 的主要特性: LPS25HB 的应用场景: LPS25HB的管脚: LPS25HB的机械物理性能展表 LP ...

  9. 推荐一个github上万star的机器学习资料整理贴

    推荐一个github上万star的机器学习资料整理贴,机器学习,深度学习,自然语言处理等应有尽有!(本文来源:忆臻的知乎) 作者:忆臻 春招将近,给大家推荐一个github上万star的资料整理贴,机 ...

最新文章

  1. 深入浅出搜索架构引擎、方案与细节(上)
  2. Oracle RAC CSS 超时计算 及 参数 misscount, Disktimeout 说明
  3. K-Median Subsequence
  4. Java基础之Switch语句
  5. 【面试练习题】存在序列:1,1/2,2/3,3/5,5/8,8/13...,求前10项的和
  6. 学习自然语言处理,一张图就够了
  7. 了解js基础知识中的作用域和闭包以及闭包的一些应用场景,浅析函数柯里化
  8. 软件工程 案例分析作业
  9. Java 中判断连接Oracle数据库连接成功
  10. 关联规则算法c语言样例及分析_推荐系统总结系列-关联规则算法(四)
  11. “熊猫血”产妇诞双胞胎困难 丈夫全城寻找血源
  12. 2.分布式服务架构:原理、设计与实战 --- 彻底解决分布式系统一致性的问题
  13. 【扩频通信】基于matlab GUI扩频通信系统仿真【含Matlab源码 772期】
  14. PE文件格式详解(0)
  15. 中科矿业深度解析:BZZ未来价格会怎么走?
  16. tp路由服务器无响应,路由器无法PPPOE链接上网老显示服务器无响应
  17. const、*、的大乱斗
  18. RL(Chapter 3): Finite Markov Decision Processes (有限马尔可夫决策过程)
  19. C语言路漫漫,其修远兮
  20. FPGA经验谈系列文章——FPGA资源评估

热门文章

  1. 《计算机科学概论》—第3章3.3节文本表示法
  2. Mac下运行git报错xcrun: error: invalid active developer path ..
  3. 【JAVA】StringTokenizer 迭代方式对字符串进行分割
  4. ZEN CART 在LINUX系统下设置邮箱方法---用GMAIL设置,方法选择SMTPAUTH
  5. 6-14 数据库高级
  6. 一起谈.NET技术,在MVC2.0使用Lodop为WEB打印提出完美解决方案
  7. 我在Freebsd下安装帝国CMS系统整合Discuz的服务器环境配置
  8. Git和SVN的区别,Git的使用方法大全
  9. 阿里云安装Quantaxis
  10. 可以生成自动文档的注释