
leveldb
simanstar
后台开发
展开
-
LevelDB原理分析
郑重声明:本篇博客是自己学习 Leveldb 实现原理时参考了郎格科技系列博客整理的,原文地址:http://www.samecity.com/blog/Index.asp?SortID=12,只是为了加深印象,本文的配图是自己重新绘制的,大部分内容与原文相似,大家可以浏览原始页面 :-),感兴趣的话可以一起讨论 Leveldb 的实现原理!LevelDb日知录之一:LevelDb 101 说起...原创 2018-05-01 18:44:30 · 503 阅读 · 0 评论 -
leveldb源码剖析---缓存系统
通过前面的分析可以知道,leveldb为了提高写的性能,牺牲了部分的读性能。最差的情况可能需要遍历各个level中的每个文件。为了缓解读性能,leveldb引入了缓存机制,当然,版本信息中包含各个level的文件元信息在一定程度上也可以提高读性能。leveldb提供的缓存系统的底层数据结构是一个开链哈希class ShardedLRUCache : public C...转载 2018-06-03 18:21:02 · 358 阅读 · 1 评论 -
Leveldb源码分析基础 1-22
见 https://blog.youkuaiyun.com/sparkliang/article/details/8567602转载 2018-06-03 18:22:35 · 235 阅读 · 0 评论 -
LevelDB : AtomicPointer
leveldb里有个AtomicPointer类:inline void MemoryBarrier() { // Seehttp://gcc.gnu.org/ml/gcc/2003-04/msg01180.html for a discussion on // this idiom. Also seehttp://en.wikipedia.org/wiki/Memory_ordering...转载 2018-06-21 15:05:21 · 205 阅读 · 0 评论 -
leveldb源码剖析----compaction
根据前面的分析,背景线程的主体工作在BackgroundCompaction函数中完成。这个函数主要完成以下两个工作:如果imm_非空,则将imm_写入到磁盘中生成新的sstable文件对level中的文件进行合并。合并的目的主要是避免某个level中sstable文件过多,并且可以通过合并的过程删除掉过期的key-value...转载 2018-06-01 16:17:13 · 646 阅读 · 0 评论