Storage: Fix getSquashDeleteRange
does not return correctly squashed key-range when using common-handle (#9530)
#9542
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is an automated cherry-pick of #9530
What problem does this PR solve?
Issue Number: close #9529
Problem Summary:
we get the "suqash delete range" to estimate whether there are sufficient delete rows that we need to compact data in background thread.
tiflash/dbms/src/Storages/DeltaMerge/DeltaMergeStore_InternalBg.cpp
Lines 526 to 528 in ce0d411
In
ColumnFileSetSnapshot::getSquashDeleteRange
, it use the member variableis_common_handle
,rowkey_column_size
to generate the rowkey range.But actually those two variable are not set correctly.
is_common_handle
is always false inColumnFileSetSnapshot
tiflash/dbms/src/Storages/DeltaMerge/ColumnFile/ColumnFileSetSnapshot.cpp
Lines 21 to 30 in ce0d411
So when the table use common-handle,
shouldCompactDeltaWithStable
always returns false, and the segment background gc is not GC in timelyWhat is changed and how it works?
ColumnFileSetSnapshot::{is_common_handle, rowkey_column_size}
shouldCompactDeltaWithStable
DMFilePackFilter
Check List
Tests
Side effects
Documentation
Release note