leveldb0
leveldb的源代码进行学习,则纯粹是出于一个码农对美好世界进行探究的好奇。接下来将尽可能从源代码上给出leveldb代码的详尽注释,这里先列出自己在阅读前后的主要参考。
0 官方文档
http://leveldb.googlecode.com/svn/trunk/
源代码,主要使用了1.7.0版本
https://leveldb.googlecode.com/files/leveldb-1.7.0.tar.gz
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
比较粗略的介绍了leveldb的主要实现细节
http://leveldb.googlecode.com/svn/trunk/doc/table_format.txt
http://leveldb.googlecode.com/svn/trunk/doc/log_format.txt
sstable文件格式与log文件格式
1 原理
【朗格科技】LevelDb日知录系列 http://www.samecity.com/blog/Index.asp?SortID=12
数据分析与处理之二(Leveldb 实现原理)
http://www.cnblogs.com/haippy/archive/2011/12/04/2276064.html
比较详尽的介绍了leveldb各模块的工作原理与实现细节,缺点是没有源代码细节。对leveldb最初细节的了解,也起于该文。建议读者可先阅读此文,以对leveldb的原理有最初的印象。另外,作者似乎没有把该系列写完。
leveldb实现解析.pdf
从代码细节上进行了分析,不过对于初接触者恐怕容易陷入过多的细节,缺乏整体性的介绍。建议对原理有了大致了解,且初读代码后,再进行对照学习。
2 性能
关于LevelDB http://blog.sina.com.cn/s/blog_593af2a70100ztjn.html
LevelDB 写操作出现停顿的问题分析 http://www.ideawu.net/blog/archives/709.html
Performance data for LevelDB, Berkley DB and BangDB for Random Operations
http://highscalability.com/blog/2012/11/29/performance-data-for-leveldb-berkley-db-and-bangdb-for-rando.html
leveldb与kyoto cabinet性能测试
http://blog.creapptives.com/post/8330476086/leveldb-vs-kyoto-cabinet-my-findings
3 相关实现
go实现 https://code.google.com/p/leveldb-go
Tair ldb(LevelDB)原理与应用案例.pdf
leveldb+redis https://github.com/qiye/redis-storage
ssdb https://github.com/ideawu/ssdb
sophia https://github.com/pmwkaa/sophia
leveldb0的更多相关文章
- MyCAT报java.lang.OutOfMemoryError: Java heap space
早上同事反映,mycat又假死了,估计还是内存溢出,查看了一下错误日志. INFO | jvm | // :: | java.lang.OutOfMemoryError: Java heap spac ...
- 爬虫总结_python
import sqlite3 Python 的一个非常大的优点是很容易写很容易跑起来,缺点就是很多不那么著名的(甚至一些著名的)程序和库都不像 C 和 C++ 那边那样专业.可靠(当然这也有动态类型 ...
- mycat偶尔会出现JVM报错double free or corruption并崩溃退出
mycat偶尔会出现JVM报错double free or corruption并崩溃退出 没有复杂的sql,也没有大量的io INFO | jvm | // :: | *** Error in `j ...
- Mycat读写分离、主从切换、分库分表的操作记录
系统开发中,数据库是非常重要的一个点.除了程序的本身的优化,如:SQL语句优化.代码优化,数据库的处理本身优化也是非常重要的.主从.热备.分表分库等都是系统发展迟早会遇到的技术问题问题.Mycat是一 ...
- MYCAT扩容
一.原架构图: 二.扩容 在HOST1上新增节点db_user2 在HOST2上新增节点db_user2 三.操作步骤 1.mycat 所在环境安装 mysql 客户端程序 2.mycat 的 lib ...
- mycat基本概念及配置文件详解
在介绍mycat之前,首先来了解一下数据库切分. 对于海量数据处理,按照使用场景,主要分为两类:联机事务处理(OLTP)和联机分析处理(OLAP). 联机事务处理也称为面向交易的处理系统,其基本特征是 ...
- 配置和运行 MatchNet CVPR 2015 MatchNet: Unifying Feature and Metric Learning for Patch-Based Matching
配置和运行 MatchNet CVPR 2015 GitHub: https://github.com/hanxf/matchnet 最近一个同学在配置,测试这个网络,但是总是遇到各种问题. 我也尝试 ...
- leveldb源码阅读
http://blog.csdn.net/sparkliang/article/details/8567602 http://brg-liuwei.github.io/tech/2014/10/15/ ...
- Jconsole 测试.
Jconsole 测试. 1 下载并安装 d:\Program Files\Java\jdk1.8.0_111\ JDK自带,Windows下图形界面,监控分析Java程序 2 查看jmx进程号 [r ...
随机推荐
- iOS 功能代码 上传到 远程 码云私有库
推送代码到远程私有库 创建私有库(注意:仓库名称LYDKit必须和本地仓库对应的名称一样) 复制远程仓库的地址,打开终端,cd到对应的本地库路径下面 >>> cd /Users/cx ...
- 编程之美 set 19 连连看游戏设计
题目 1. 怎么用简单的计算机模型来描述这个问题 ? 2. 怎么判断两个图像是否能相消 3. 怎么求出相同图形之间的最短距离(转弯数最少)? 4. 怎么确定目前处于死锁状态? 如何设计算法来解除死锁? ...
- String、StringBuffer与StringBuilder区别
1.三者在执行速度方面的比较:StringBuilder > StringBuffer > String 2.String <(StringBuffer,StringBuild ...
- MD5骨骼动画模型加载
前面我们分析了静态模型OBJ格式,桢动画模型MD2,这篇主要分析骨骼动画MD5的一些概念并且实现. 混合桢动画有计算简单,容易实现等优点,但是在需要比较细致的效果时,则需要更多的关键桢,每桢都添加相同 ...
- 面试题思考:Java RMI与RPC,JMS的比较
RPC:(Remote Procedure Call) 被设计为在应用程序间通信的平台中立的方式,它不理会操作系统之间以及语言之间的差异. 支持多语言 RMI:(Remote Method Invo ...
- 【BZOJ4872】[Shoi2017]分手是祝愿 数学+期望DP
[BZOJ4872][Shoi2017]分手是祝愿 Description Zeit und Raum trennen dich und mich. 时空将你我分开.B 君在玩一个游戏,这个游戏由 n ...
- 修改DedeCMS图片上传路径命名规则的具体方法步骤
收藏到:0时间:2013-08-23 文章来源:马海祥博客 访问次数:2350 最近在整理网站根目录下文件的时候,发现马海祥博客网站已经有上千个文件夹了,其中光图片文件夹就占了近一半.这个主要 ...
- 剑指Offer——把数组排成最小的数
题目描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 分析: 排 ...
- Qt JSON解析生成笔记(把JSON转成一个类对象)
对于这样一段json { "name": "布衣食", "gender": "Male", "age" ...
- 手游包压缩技术引领手游行业实现app页游化
近些年,掌上游戏时代已经成为全民风尚,但身为游戏开发商考虑过手游安装包大小与用户转化率之间的关系吗? 随着手机游戏市场发展愈发壮大,行业发展愈加成熟,手游厂商愈来愈多,手游产业也进入了优胜劣汰的环节, ...