[
https://issues.apache.org/jira/browse/HBASE-28227?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17811730#comment-17811730
]
Xiaolin Ha commented on HBASE-28227:
------------------------------------
I think it's the original design for the stripe store engine not supporting
entire files major compaction, because it performs major compactions in each
stripe. More info in the design doc of HBASE-7667 .
Do you want to trigger major compaction to erase all the existing stripe info
or just want to make majors in the existing stripes? I think if for the issues
of bulkloads or large file skipps in the ExploringCompactionPolicy, there are
some compaction configs can be adjusted to resolve them. But if you want to
erase the existing stripe info, you can provide a new compaction request type
without reusing the `selectSingleStripeCompaction` in the PR. Just some
advices, thanks.
> 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: Improvement
> Components: regionserver
> Affects Versions: 2.2.6
> Reporter: longping_jie
> Priority: Major
>
> 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)