
leveldb
文章平均质量分 80
longzuo
这个作者很懒,什么都没留下…
展开
-
LevelDb源码学习——版本管理
Version及相关的Version-set,Version-edit是leveldb中最重要的概念之一。Version保存了db中sst文件的元信息,提供对sst文件的查询等功能,另外Version还为Compact提供数据支持。Version-set是Version的集合,随着db的使用,sst文件会发生合并,新增,db呈现为不同的版本,Version-set集合了各个版本。Version原创 2017-09-29 12:15:53 · 610 阅读 · 0 评论 -
leveldb源码学习-writebatch
WriteBatch是leveldb提供批量写入的工具,writebatch中保存有若干用户的输入k-v,writebatch组织这些k-v,并最终将其写入memtable。writebatch主要的成员变量是一个string rep_,用户k-v按照以下格式保存在 rep中 writebatch类提供的主要功能包括写入一个key ,put 像rep_中增加一个k-v结构删除一个key ,de原创 2017-10-01 11:06:08 · 621 阅读 · 0 评论 -
leveldb源码学习——系统函数封装Env
Env是一个接口类,提供了基本的系统访问接口,如操作文件,线程等。 leveldb在util中实现了PosixEnv,实现上述接口首先定义了几个基本类型SequentialFile,提供顺序读方法的接口类 RandomAccessFile,提供随机读方法的接口类 WritableFile, 提供顺序写方法的接口类Env接口类定义了以下接口创建文件句柄读文件 顺序读句柄随机读句柄-创建原创 2017-10-03 14:59:27 · 705 阅读 · 0 评论 -
leveldb源码学习——Cache
Leveldb中会使用cache来提高读取性能,cache两种数据,1,file meta信息,2,data block信息。 leveldb开放了cache的接口,用户可以通过自定义cache类,完成对cache的定制化实现,另外leveldb定义了一个default cache,叫做LRU cache,在用户未实现自定义cache类时,将使用此类作为level的cache,本文脱离业务,单纯分原创 2017-10-07 15:04:05 · 868 阅读 · 0 评论 -
leveldb源码学习——db读写流程
读流程当用户调用Get方法从leveldb中读取一个key的value时,leveldb按照memtable,imm,sst文件的顺序,依次寻找key。其中,在sst文件中搜索是通过在当前version中Get来实现的,version是sst文件的一个snapshot,可以保证版本一致,如果没有version机制,在get过程中,此key所在sst文件被合并到了其他文件中,则可能会get失败。关键代原创 2017-10-01 16:26:36 · 1394 阅读 · 0 评论