组件实现:
mentable: treeMap实现
稀疏索引:treeMap 每个sstable都对应一个稀疏索引 例如
SStable: 磁盘写入自定义的协议字节
compare: 压缩策略实现了level_size 当某一层级超过限定个数 就使用归并合并这些sstable File 填充到下一个层级
wal: 暂未实现
依赖:
jdk17
maven
测试 查询2g的文件,查找时间极短(第一次为4ms(因为要打开随机文件句柄) 后面为0ms)
图为测试结果:
可以使用 batch命令 批量实现插入 然后 测试 作者使用 batch 1 30000000 一下存了30000000个记录,然后crud,速度非常快。写入速度非常快!
测试方法:直接运行main函数 然后输入命令:
put key val
get key
update key val
delete key
flush(强制把mentable的内容刷到磁盘)
github地址: