简介
LevelDB是一个Google编写的快速键值存储库,它提供从字符串键到字符串值的有序映射。
基本架构
LSM树存储引擎
先说什么是存储引擎:
- 存储引擎是存储系统的发动机,直接决定了存储系统能够提供的性能和功能
存储系统的基本功能包括:增删读改,读取操作又可以分为随机读取和顺序扫描
- 哈希存储引擎是哈希表的持久化表现,不支持顺序扫描,对应的存储系统为键值存储系统
- B-Tree存储引擎是B-Tree的持久化实现,支持顺序扫描,对应的存储系统为关系数据库
- LSM树存储引擎和B-Tree支持顺序扫描,它通过批量转储技术规避磁盘随机写入问题
LevelDB的LSM存储引擎
LSM树的想法很简单,就是将对数据的修改增量保持在内存中,达到能指定的大小限制后将这些修改操作批量写入磁盘,读取时需要合并磁盘中的历史数据和内存中最近的修改操作。LSM树有效的规避了磁盘随机写入的问题,丹读取时可能需要访问较多的磁盘文件
存储结构
- 如图所示,LevelDB存储引擎主要包括:内存中的MemTable和不可变