extend.md 1.4 KB

extend

这个extend的目的是为了完成一个完整的数据库库,一个完整的数据库从的我的设计上看包含以下几个部分

基本组件

|--内存缓存

|--查询过滤器

|--持久化存储

|--数据序列化

|--数据反序列化

|--LRU缓存

|--辅存操作日志

|--程序运行日志

|--配置文件解析

内存缓存

-skiplist.h 用skiplist作为内存缓存数据结构,skiplist有实现简单,插入删除时间复杂度低,相对红黑树,插入删除调整方便,同时支持连续索引,redis和leveldb都是使用skiplist作为缓存。(目前还有一些操作没有验证,没有实现迭代器)

查询过滤器

为了防止出现缓存穿透,提供了相应的过滤器,目前包括bloomfilter和Cuckoofilter来实现数据存在性校验(Cuckoofilter还没有实现,bloomfilter还没有完全测试)

持久化存储

将数据持久化存储到磁盘上,在持久化存储中使用lsm-tree来实现高性能写入

数据序列化

数据反序列化

LRU缓存

使用LRU算法来实现磁盘查询缓存

辅存操作日志

防止写入的丢失

程序运行日志

sql扩展

|-词法分析器

|-语法分析器

Json扩展

|-Json解析器

独立服务

|-独立服务器

分布式扩展

|-raft一致性算法