|
@ -268,7 +268,7 @@ void DBImpl::TEST_CompactRange(int level, const Slice* begin, |
|
|
|
|
|
|
|
|
但是这种方法仍然存在两个问题: |
|
|
但是这种方法仍然存在两个问题: |
|
|
|
|
|
|
|
|
1. 最后有文件的一层(max_level_with_files)可能并没有超过size的限制,也就是说其不应该被合并到下一层中,这也同样符合leveldb原本的逻辑。 |
|
|
|
|
|
|
|
|
1. 最后有文件的一层(max_level_with_files)可能并没有达到合并的条件,也就是说其不应该被合并到下一层中,这也同样符合leveldb原本的逻辑,但是这样的做法会导致其合并至下一层。 |
|
|
|
|
|
|
|
|
2. 当存储数据已经堆积到整个leveldb的最底层时(即已达到`kNumLevels`),按照上述代码执行会导致致命错误并使数据库崩溃。 |
|
|
2. 当存储数据已经堆积到整个leveldb的最底层时(即已达到`kNumLevels`),按照上述代码执行会导致致命错误并使数据库崩溃。 |
|
|
|
|
|
|
|
|