浏览代码

Complete Report in README

main
ArcueidType 2 周前
父节点
当前提交
c295a4a490
共有 5 个文件被更改,包括 7 次插入2 次删除
  1. +7
    -2
      README.md
  2. 二进制
      img/test2_fail_with_3levels.png
  3. 二进制
      img/test3_failure.png
  4. 二进制
      img/test3_pass.png
  5. 二进制
      img/test3_succ.png

+ 7
- 2
README.md 查看文件

@ -388,12 +388,17 @@ Status DBImpl::InstallCompactionResults(CompactionState* compact) {
在该样例中将`kNumLevels`设置为`3`可以保证(同时Assert确认正确性)最后一层中存在数据,我们的实现仍然可以通过测试:
![LastLevelCompaction](img/test3_pass.png)
> main分支中为原始配置,即kNumLevels = 7, 其层数过大,导致要测试最底层含有数据非常耗时,因此我们在其他分支中提供了kNumLevels = 3配置的实现用于测试
`light_ver`分支:正确的合并实现,能通过测试
![LastLevelCompaction](img/test3_succ.png)
而采用上述直接添加一层循环并且跳过最底层避免崩溃的方法则无法通过测试:
`naive_version`分支:简单增加一层循环并跳过最底层合并,无法清除最底层过期数据,因此无法通过测试
在该样例中将`kNumLevels`设置为3并
![LastLevelCompactionFail](img/test3_failure.png)
最后,展示三个测试样例一起运行的结果:

二进制
img/test2_fail_with_3levels.png 查看文件

之前 之后
宽度: 605  |  高度: 122  |  大小: 30 KiB

二进制
img/test3_failure.png 查看文件

之前 之后
宽度: 1556  |  高度: 492  |  大小: 114 KiB

二进制
img/test3_pass.png 查看文件

之前 之后
宽度: 508  |  高度: 82  |  大小: 18 KiB

二进制
img/test3_succ.png 查看文件

之前 之后
宽度: 1152  |  高度: 360  |  大小: 75 KiB

正在加载...
取消
保存