0%

通过之前对LevelDB的整体流程,数据存储以及元信息管理的介绍,我们已经基本完整的了解了LevelDB。从这篇文章开始,我们将重心转移到Iterator上,这是一种统一的访问底层数据的设计模式,用户不用关心底层数据是如何存储,只需使用Iterator提供的几种操作接口,即可访问。本文是leveldb众多iterator的一个总览,后文再对各个Iterator单独分析。

本文转载自:https://www.jianshu.com/p/7fe24a77002a

阅读全文 »

leveldb是一种对写优化的kv存储系统,读性能有所下降,为了充分利用局部性原理,提高读性能,leveldb自己也设计了一个Cache结构。内部采用LRU替换策略。

阅读全文 »

10.leveldb源码阅读记录-SSTable

[toc]

上文中,我们介绍了Version和Manifest,这篇文章将介绍leveldb的核心–SStable。

SSTable·

1. 引言·

https://bean-li.github.io/leveldb-sstable/

这部分在doc/table_format.md有介绍。

SSTable文件是落在磁盘上的真正文件,leveldb存储路径中的.sst 类型的文件都是SSTable文件。 本文介绍该文件的格式,以及leveldb如何一条记录一条记录的增加到SSTable文件。

阅读全文 »

log文件是用来保证写入的持久性的。当用户向系统发出write请求,首先就会将数据写入一份到log文件中,然后再写入到memtable,这是为了防止系统crash而出现数据loss。

阅读全文 »