hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nick Dimiduk (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-13378) RegionScannerImpl synchronized for READ_UNCOMMITTED Isolation Levels
Date Thu, 11 Jun 2015 01:09:01 GMT

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

Nick Dimiduk commented on HBASE-13378:

>From server.org

bq. 3. PATCH version when you make backwards-compatible bug fixes


bq. 6. Patch version Z (x.y.Z | x > 0) MUST be incremented if only backwards compatible
bug fixes are introduced. A bug fix is defined as an internal change that fixes incorrect

Was the pervious behavior incorrect? I think this is a performance enhancement that changes
behavior in a backward-incompatible way. Someone depending on READ_UNCOMMITTED scanners to
record the readpoint will need to deploy different versions of their code to run on, say 1.1.0
and 1.1.1. I think that means it's not compatible for a patch release. For instance, if Phoenix
was depending on this behavior, we would reject this change as a patch release, but I think
it would be accepted for for a minor release.

READ_UNCOMMITTED is probably not a widely used feature, but it is a publicly available feature.
I think the semantics of our operations are just as precious as our APIs. To be on the safe
side, I'd prefer this go into branch-1 but not branch-1.0 or branch-1.1.

> RegionScannerImpl synchronized for READ_UNCOMMITTED Isolation Levels
> --------------------------------------------------------------------
>                 Key: HBASE-13378
>                 URL: https://issues.apache.org/jira/browse/HBASE-13378
>             Project: HBase
>          Issue Type: New Feature
>            Reporter: John Leach
>            Assignee: John Leach
>            Priority: Minor
>         Attachments: HBASE-13378.patch, HBASE-13378.txt
>   Original Estimate: 2h
>          Time Spent: 2h
>  Remaining Estimate: 0h
> This block of code below coupled with the close method could be changed so that READ_UNCOMMITTED
does not synchronize.  
>       // synchronize on scannerReadPoints so that nobody calculates
>       // getSmallestReadPoint, before scannerReadPoints is updated.
>       IsolationLevel isolationLevel = scan.getIsolationLevel();
>       synchronized(scannerReadPoints) {
>         this.readPt = getReadpoint(isolationLevel);
>         scannerReadPoints.put(this, this.readPt);
>       }
> {CODE}
> This hotspots for me under heavy get requests.

This message was sent by Atlassian JIRA

View raw message