longping_jie created HBASE-28227:
------------------------------------
Summary: Tables to which Stripe Compaction policy is applied
cannot be forced to trigger Major Compaction.
Key: HBASE-28227
URL: https://issues.apache.org/jira/browse/HBASE-28227
Project: HBase
Issue Type: Bug
Components: regionserver
Affects Versions: 2.2.6
Reporter: longping_jie
There is a table and the Stripe Compaction strategy is applied. Each region
has an average value of 40G and is divided into 8 Stripes. Each Stripe is 5G.
The business deletes a large amount of data. Manually triggering major
compaction on the entire table and a single region does not work and cannot be
selected.
After reading the source code, the merging strategy applied under each
Stripe is ExploringCompactionPolicy. This strategy has a key point. It filters
the Store file list of a single Stripe. In the candidate file list, as long as
there is a file that is too large in size and meets the condition, fileSize >
(totalFileSize - fileSize) * (hbase.hstore.compaction.ratio default value 1.2),
files will not be filtered out to participate in major compaction.
It is necessary to support a forced merging mechanism. For scenarios where
a large amount of data is deleted, or where bulkload exists, you can explicitly
pass in a parameter such as foreMajor when manually triggering the major, and
then perform forced Major Compaction in Stripe units to support the data. Clean
up.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)