[
https://issues.apache.org/jira/browse/HBASE-12030?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14142109#comment-14142109
]
Anoop Sam John commented on HBASE-12030:
----------------------------------------
Thanks for the good catch [~mbertozzi]. I had doubt on this major - minor
degradation. Checked other angles bit missed the part of metric.
Thinking in that angle I am coming up with a patch. Trying to not degrade major
to minor. Just providing way in CompactionRequest to forcefully say that keep
delete markers. If this is set, whatever be the type of compaction, we will
keep the delete tomb stones after the compaction.
patch coming soon
Also Jingcheng noticed and informed me that there is an issue in
HMobStore#compact() where we check whether we need major- minor degrade. We
check just CompactionRequest#isMajor(). Actually we should check isAllFiles()
because that decided whether to keep the delete markers or not. I will fix
that issue also in this patch
> Wrong compaction report and assert when MOB compaction switches to minor
> ------------------------------------------------------------------------
>
> Key: HBASE-12030
> URL: https://issues.apache.org/jira/browse/HBASE-12030
> Project: HBase
> Issue Type: Bug
> Components: regionserver
> Affects Versions: hbase-11339
> Reporter: Matteo Bertozzi
> Priority: Critical
> Fix For: hbase-11339
>
>
> when zookeeper is down during a major compaction or a sweep tool run in
> progress, we switch to a minor.
> {code}
> try {
> zk = MobZookeeper.newInstance(this.conf, compactionName);
> } catch (KeeperException e) {
> LOG.error("Cannot connect to the zookeeper, ready to perform the minor
> compaction instead", e);
> // change the major compaction into a minor one
> compaction.getRequest().setIsMajor(false);
> return super.compact(compaction);
> }
> {code}
> but the "request start" (HRegion.reportCompactionRequestStart) is "major" and
> increments the major-compactions counter
> while the "request end" (HRegion.reportCompactionRequestEnd) is "minor" and
> decrements the minor-compactions counter
> triggering the assert newValue >= 0, since we are decrementing the wrong
> counter
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)