[
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
and
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 behavior.
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.
> {CODE:JAVA}
> // 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
(v6.3.4#6332)