Ver código fonte

Complete Report in README

main
ArcueidType 2 semanas atrás
pai
commit
c295a4a490
5 arquivos alterados com 7 adições e 2 exclusões
  1. +7
    -2
      README.md
  2. BIN
      img/test2_fail_with_3levels.png
  3. BIN
      img/test3_failure.png
  4. BIN
      img/test3_pass.png
  5. BIN
      img/test3_succ.png

+ 7
- 2
README.md Ver arquivo

@ -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)
最后,展示三个测试样例一起运行的结果:

BIN
img/test2_fail_with_3levels.png Ver arquivo

Antes Depois
Largura: 605  |  Altura: 122  |  Tamanho: 30 KiB

BIN
img/test3_failure.png Ver arquivo

Antes Depois
Largura: 1556  |  Altura: 492  |  Tamanho: 114 KiB

BIN
img/test3_pass.png Ver arquivo

Antes Depois
Largura: 508  |  Altura: 82  |  Tamanho: 18 KiB

BIN
img/test3_succ.png Ver arquivo

Antes Depois
Largura: 1152  |  Altura: 360  |  Tamanho: 75 KiB

Carregando…
Cancelar
Salvar