[ 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)