ソースを参照

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

読み込み中…
キャンセル
保存