A persistent, LSM tree structured key value database engine implemented by go language.
- 接口: Get, Put, Delete, Scan
- 布隆过滤器算法版 (暂不集成)
- map版 Memstore
- 基本SSTable结构 (追加, 无序, 递增文件序号)
- 基本LSM-Tree结构
- 实现WAL存储 (暂不实现故障恢复功能)
- 实现完整的key-value结构, 包括时间戳
- 读取一个配置文件
- SkipList版 Memstore
- 支持并发的 SkipList
- 有序SSTable结构
- 集成Bloom Filter
- 实现基于WAL的故障恢复(内存)
- 完整SSTable结构(带索引, 暂不分块)
- 分块的SSTable结构
- 内存的blockCache缓存
- 多种WAL策略实现, 可选与默认
- Compaction的leveldb策略的实现
- SSTable的前缀压缩
- 设计实现varint可变长度编码
- 考虑增量设计(偏移增量等)
- 考虑键值分离的结构, 类似boltDB
- 使用标准使用接口(如参考leveldb)改造项目调用方式
- 实现可变长度整形 varint 从而更好地压缩 (binary中有实现)
- 实现字符串压缩算法
- 分块读文件, 分块处理
- manifest原数据组织
第一个基本完成版本
- 集成Bloom Filter
- 完整SSTable结构(带索引, 暂不分块)
- 分块的SSTable结构
- Compaction的leveldb策略的实现
- 实现可变长度整形 varint 从而更好地压缩 (binary中有实现)
- 分块读文件, 分块处理
- manifest原数据组织
针对某些点进行改善, 实现更多的功能和完整性
- 读取一个配置文件
- 有序SSTable结构
- 使用标准使用接口(如参考leveldb)改造项目调用方式
- 实现完整的key-value结构, 包括时间戳
- 实现基于WAL的故障恢复(启动时从内存恢复)
- 设计实现varint可变长度编码
- SkipList版 Memstore
先实现框架, 接口. 对每个接口的具体实现不做要求, 后续再改进.
- 接口: Get, Put, Delete, Scan
- 布隆过滤器算法版 (暂不集成)
- map版 Memstore
- 基本SSTable结构 (追加, 无序, 递增文件序号)
- LSM-Tree结构
- 实现WAL存储 (暂不实现故障恢复功能)