hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ramkrishna.s.vasudevan (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-19732) Replica regions does not return back the MSLAB chunks to pool
Date Mon, 08 Jan 2018 10:43:00 GMT

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

ramkrishna.s.vasudevan commented on HBASE-19732:

bq.Should there be a check so that the change is only applied to replica region ?
The code where the close() has been added happens only on a replay flow and on receiving the
Flush markers. So we should be good with that.

> Replica regions does not return back the MSLAB chunks to pool
> -------------------------------------------------------------
>                 Key: HBASE-19732
>                 URL: https://issues.apache.org/jira/browse/HBASE-19732
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 2.0.0-alpha-4
>            Reporter: ramkrishna.s.vasudevan
>            Assignee: ramkrishna.s.vasudevan
>            Priority: Critical
>             Fix For: 2.0.0-beta-2
>         Attachments: HBASE-19732.patch
> When we have region replica enabled, we try to replicate the flush markers. In the replica
region on receiving the FLUSH_START_MARKER we create a snapshot. On receiving COMMIT_FLUSH_MARKER
we just update the store files and clear the snapshot. But in the recent trunk code while
creating snapshot (need to verify in other  branches too)
> {code}
>     this.timeRangeTracker = snapshot.getTimeRangeTracker();
>     this.scanners = snapshot.getScanners(Long.MAX_VALUE, Long.MAX_VALUE);
>     this.tagsPresent = snapshot.isTagsPresent();
> {code}
> The scanners that we create internally increment the openScannerCount per MSLAB. But
since in this case we don't call scanner.close() we don't decrement the scanner count and
so the MSLAB chunks are not returned back to the pool when the snapshot is closed in the replica
> {code}
> int count  = openScannerCount.get();
>     LOG.info("the count is "+count);
>     if(count == 0) {
>       recycleChunks();
> {code}
> This is a critical bug. 

This message was sent by Atlassian JIRA

View raw message