Vladimir Davydov
authored
When a few ranges are coalesced, we "force" compaction of the resulting range by raising its compaction priority to max (slice count). There's actually no point in that, because as long as the shape of the resulting LSM tree is OK, we don't need to do extra compaction work. Moreover, it actually doesn't work if a new slice is added to the resulting range by dump before it gets compacted, which is fairly likely, because then its compaction priority will be recalculated as usual. So let's simply call vy_range_update_compact_priority() for the resulting range. When a range is split, the produced ranges will inherit its compaction priority. This is actually incorrect, because range split may change the shape of the tree so let's recalculate priority for each part the usual way, i.e. by calling vy_range_update_compact_priority(). After this patch, there's this only place where we can update compaction priority of a range - it's vy_range_update_compact_priority().
Name | Last commit | Last update |
---|