[ 
https://issues.apache.org/jira/browse/HBASE-17674?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15995323#comment-15995323
 ] 

Sean Busbey commented on HBASE-17674:
-------------------------------------

Can we get a release note on this? Esp on how it changes behavior? Is there any 
reason no test was included and it didn't get backported to other release lines 
that are listed as impacted?

> Major compaction may be cancelled in CompactionChecker
> ------------------------------------------------------
>
>                 Key: HBASE-17674
>                 URL: https://issues.apache.org/jira/browse/HBASE-17674
>             Project: HBase
>          Issue Type: Bug
>          Components: Compaction
>    Affects Versions: 2.0.0, 1.3.0, 1.2.4, 0.98.24
>            Reporter: Guangxu Cheng
>            Assignee: Guangxu Cheng
>             Fix For: 2.0.0, 1.4.0
>
>         Attachments: HBASE-17674-master-v1.patch
>
>
> CompactionChecker will periodically check whether a region should perform a 
> major compaction.
> If a region should perform a major compact, a request is submitted. But 
> before the request is submitted, the variable forceMajor is not set to true 
> by calling triggerMajorCompaction.
> When filtering a storefile, the large storefile may cause the request to be 
> canceled or became minor compact.
> {code:title=HRegionServer.java|borderStyle=solid}
> @Override
>     protected void chore() {
>       for (Region r : this.instance.onlineRegions.values()) {
>         if (r == null)
>           continue;
>         for (Store s : r.getStores()) {
>           try {
>             long multiplier = s.getCompactionCheckMultiplier();
>             assert multiplier > 0;
>             if (iteration % multiplier != 0) continue;
>             if (s.needsCompaction()) {
>               // Queue a compaction. Will recognize if major is needed.
>               this.instance.compactSplitThread.requestSystemCompaction(r, s, 
> getName()
>                   + " requests compaction");
>             } else if (s.isMajorCompaction()) {              
>               if (majorCompactPriority == DEFAULT_PRIORITY
>                   || majorCompactPriority > 
> ((HRegion)r).getCompactPriority()) {
>                 this.instance.compactSplitThread.requestCompaction(r, s, 
> getName()
>                     + " requests major compaction; use default priority", 
> null);
>               } else {
>                 this.instance.compactSplitThread.requestCompaction(r, s, 
> getName()
>                     + " requests major compaction; use configured priority",
>                   this.majorCompactPriority, null, null);
>               }
>             }
>           } catch (IOException e) {
>             LOG.warn("Failed major compaction check on " + r, e);
>           }
>         }
>       }
>       iteration = (iteration == Long.MAX_VALUE) ? 0 : (iteration + 1);
>     }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to