leveldb源码学习—基本数据结构

85 阅读1分钟

提前祝大家2018新年快乐!这个假期准备学习一下leveldb源码,请多多指教。---- 2018.02.05

leveldb通过顺序写来优化写的性能,避免b+树随机写导致的磁盘寻址延迟。但是读性能较低,触发文件合并时还会影响读取延迟的稳定性,适合写多读少的场景。未来发展会将键值分离,减少写放大的影响,提高合并性能与磁盘使用寿命。

1.skiplist跳表

image.png

2.对象池优化

image.png

3.MemTable内存存储

image.png

4.WriteBatch写缓冲 && 5. Log文件

image.png

6.SSTable文件格式

image.png

7.共享前缀编码

image.png

8.布隆过滤器优化

image.png

9.TableCache缓存优化 && 10. Merge迭代器抽象

image.png