| 576 | } |
| 577 | |
| 578 | void DBImpl::CompactRange(const Slice* begin, const Slice* end) { |
| 579 | int max_level_with_files = 1; |
| 580 | { |
| 581 | MutexLock l(&mutex_); |
| 582 | Version* base = versions_->current(); |
| 583 | for (int level = 1; level < config::kNumLevels; level++) { |
| 584 | if (base->OverlapInLevel(level, begin, end)) { |
| 585 | max_level_with_files = level; |
| 586 | } |
| 587 | } |
| 588 | } |
| 589 | TEST_CompactMemTable(); // TODO(sanjay): Skip if memtable does not overlap |
| 590 | for (int level = 0; level < max_level_with_files; level++) { |
| 591 | TEST_CompactRange(level, begin, end); |
| 592 | } |
| 593 | } |
| 594 | |
| 595 | void DBImpl::TEST_CompactRange(int level, const Slice* begin, |
| 596 | const Slice* end) { |