[
https://issues.apache.org/jira/browse/HBASE-27861?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated HBASE-27861:
-----------------------------------
Labels: pull-request-available (was: )
> Increases the concurrency of off-peak compactions
> -------------------------------------------------
>
> Key: HBASE-27861
> URL: https://issues.apache.org/jira/browse/HBASE-27861
> Project: HBase
> Issue Type: Improvement
> Environment: HBase 2.0.2
> Hadoop 3.1.1
> Reporter: Xiao Zhang
> Assignee: Xiao Zhang
> Priority: Minor
> Labels: pull-request-available
>
> The current off-peak compactions are global comparisons. There can only be
> one off-peak compact running at a time, which does not make better use of the
> system resources during the off-peak period. This is not very friendly for
> clusters with significant peaks and valleys of business.
> Code:
> {code:java}
> private static final AtomicBoolean offPeakCompactionTracker = new
> AtomicBoolean();
> // Normal case - coprocessor is not overriding file selection.
> if (!compaction.hasSelection()) {
> boolean isUserCompaction = priority == Store.PRIORITY_USER;
> boolean mayUseOffPeak =
> offPeakHours.isOffPeakHour() &&
> offPeakCompactionTracker.compareAndSet(false, true);
> try {
> compaction.select(this.filesCompacting, isUserCompaction, mayUseOffPeak,
> forceMajor && filesCompacting.isEmpty());
> } catch (IOException e) {
> if (mayUseOffPeak) {
> offPeakCompactionTracker.set(false);
> }
> throw e;
> }
> assert compaction.hasSelection();
> if (mayUseOffPeak && !compaction.getRequest().isOffPeak()) {
> // Compaction policy doesn't want to take advantage of off-peak.
> offPeakCompactionTracker.set(false);
> }
> }{code}
>
> I think it could be optimized to allow the user to set the number of
> concurrent off-peak compactions.
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)