Pārlūkot izejas kodu

Delete other problem to be witnessed.

main
郭夏辉 pirms 2 nedēļām
vecāks
revīzija
442c524043
1 mainītis faili ar 0 papildinājumiem un 25 dzēšanām
  1. +0
    -25
      report.md

+ 0
- 25
report.md Parādīt failu

@ -398,31 +398,6 @@ int main(int argc, char** argv) {
![image-20241107082315854](assets/image-20241107082315854.png)
## 5.3其他可能出现的问题:
可能是因为test文件内的数据准备以及硬件的运行速度,有些问题有可能会发生。
```cpp
inline bool DBIter::ParseKey(ParsedInternalKey* ikey) {
Slice k = iter_->key();
size_t bytes_read = k.size() + iter_->value().size();
while (bytes_until_read_sampling_ < bytes_read) {
bytes_until_read_sampling_ += RandomCompactionPeriod();
db_->RecordReadSample(k);
}
//......
void DBImpl::RecordReadSample(Slice key) {
MutexLock l(&mutex_);
if (versions_->current()->RecordReadSample(key)) {
MaybeScheduleCompaction();
}
}
```
上述过程是在读取的过程中发生的,当发现key跨文件存在后,它也会触发合并。这就有可能导致,对于testRead文件,如果ttl设置的比较小,在读取key1(file1内)时,发现它跨文件存在于file2,然后触发合并,但是值key2也在file2内,此时有可能过期。这就导致在读取key2前,就已经触发合并,将过期数据删除,这样会导致test报错。
## 6.本实验ttl实现与已有ttl实现的比较

Notiek ielāde…
Atcelt
Saglabāt