pikiwidb icon indicating copy to clipboard operation
pikiwidb copied to clipboard

Floyd 存储引擎改造

Open Mixficsol opened this issue 1 year ago • 1 comments

待做事项

第一期

  • [x] 重新设计 MetaCF 格式,MetaValue 的第一个字节用 Type 表示 @Mixficsol
  • [x] 简单对两个命令进行多 Key 的测试 @Mixficsol
  • [x] 对 Client 层命令的返回值增加 kmultikey 的报错判断 @Mixficsol
  • [x] 在 Stroage 层对除 String 之外的四种数据类型添加多 key 判断 @Mixficsol
  • [x] 设计 StringMetaCF @Mixficsol
  • [x] 移植 TCL 测试到 PikiwiDB 中 @Mixficsol
  • [x] 将 StringMetaCF 添加到代码中去 @Mixficsol
  • [x] 将 Type 字段用位或者枚举类型表示,替代 char 字符 @dingxiaoshuai123
  • [x] 将 String 的 CF 和 Meta CF 合并 @dingxiaoshuai123
  • [x] 使用 String 覆盖其他数据类型的 Key 时,删除原数据类型对应 KeyDataCF 中的数据 @Mixficsol
  • [x] 更改 Meta CF 的 compaction filter @dingxiaoshuai123
  • [x] 对Persist, TTL, GetType, Keys, ScanDatabase, IsExist这几个之前需要遍历五种数据类型的接口等进行修改,指定操作一个数据类型 @Mixficsol
  • [x] 实现 Compact 命令,并验证数据是否淘汰 @dingxiaoshuai123
  • [x] Set, Hash , List, StringTCL 测试以及问题修复 @dingxiaoshuai123
  • [ ] ZsetBitopsTCL 测试以及问题修复

第二期

  • [x] 将 ctime, etimeverion 字段改成 int64_t 保持和 RocksDB 一致 @dingxiaoshuai123
  • [x] 将字段 ctime 的写入时间赋值 @dingxiaoshuai123
  • [x] 优化 Del 等接口 @Mixficsol
  • [x] 新增 Storage 层的单元测试 @Mixficsol @dingxiaoshuai123
  • [ ] 参照 RocksDB 实现 InternalKeyParseKey 流程优化 @dingxiaoshuai123 @Mixficsol
  • [ ] 支持内存中建立一个所有 Keycuckoo bloom filter @Mixficsol @dingxiaoshuai123
  • [ ] 一些 RocksDBoption 可以通过配置文件传入,比如 write-buffer-sizemax-jobsmax-flushes 等等其他参数 @dingxiaoshuai123 @Mixficsol

Mixficsol avatar Apr 12 '24 09:04 Mixficsol