LevelDB
文章平均质量分 67
快乐的霖霖
一个人默默的奋斗者
展开
-
leveldb代码结构
leveld代码结构源文件$ tree -I "*test*".├── AUTHORS├── build_detect_platform├── db #具体逻辑│ ├── builder.cc # 定义了BuildTable函数│ ├── builder.h│ ├── c.cc # c封装,暂时不用看│ ├── db_bench.cc原创 2015-11-21 20:16:11 · 1240 阅读 · 0 评论 -
Leveldb源码分析之Slice
Leveldb源码分析之SliceSlice非常简单的数据结构,它包括length和一个指向外部字节数组的指针。为什么使用Slice,而不直接使用string呢??相比返回string,返回Slice的开销会小的多(没有拷贝,Slice中没有实际数据,只有指向数据的指针,开销低)。leveldb允许key和value包含'\0',不能返回以null结尾的c风格字符串原创 2015-11-21 20:49:40 · 1262 阅读 · 0 评论 -
LevelDB整体架构分析
LevelDB整体架构分析1. 整体架构2. 简要分析 具体参见:http://www.cnblogs.com/haippy/archive/2011/12/04/2276064.html原创 2015-10-25 15:09:24 · 1816 阅读 · 0 评论 -
LevelDB源码分析之内存管理类arena
LevelDB源码分析之内存管理类arena Leveldb的大部分内存管理依赖于C++语言的默认实现,也就是不对内存进行管理。只是在memtable的实现中用到了一个简单的内存管理器(arena)。因为memtable的内部实现skip list写入时,需要分配新节点,大量节点的直接分配可能会带来较多的碎片,影响运行效率。因此,leveldb在每个memtable中原创 2016-07-09 23:47:49 · 1962 阅读 · 0 评论 -
键值数据库PebblesDB读后感
键值数据库PebblesDB读后感 在LevelDB/RocksDB这种分层思路上,PebblesDB提出了一种减少写放大的思路,下面学习并总结,所述以论文为基础,也有个人 观点,客观论述请看原文。虽然LSM的写放大最近被研究很多,但是就写放大本身而言,是一个很古老的问题。在计算机体系中,如果相邻两层的处理单元不一致或者应用对一致性等有特殊的需求,就很可能出现原创 2018-03-16 23:47:51 · 1557 阅读 · 0 评论