[
https://issues.apache.org/jira/browse/HBASE-15716?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15259350#comment-15259350
]
Lars Hofhansl commented on HBASE-15716:
---------------------------------------
Hmm... As is we need the synchronized I think. Off-hand I cannot think of any
way out of this. The problem is that adding a readpoint and finding the oldest
need to be in sync.
"Add" alters the CSLM, in theory we cannot be entirely sure in what ways. Since
it is true that we will *never* add an older scanner later, it *might* work to
keep the CSLM and not synchronize - and anyway, we're taking the same risk by
not synchronizing on removing already. We could potentially miss the first
scanner added, though.
Lemme mull this over some more.
> HRegion#RegionScannerImpl scannerReadPoints synchronization costs
> -----------------------------------------------------------------
>
> Key: HBASE-15716
> URL: https://issues.apache.org/jira/browse/HBASE-15716
> Project: HBase
> Issue Type: Bug
> Components: Performance
> Reporter: stack
> Attachments: 15716.prune.synchronizations.patch, Screen Shot
> 2016-04-26 at 2.05.45 PM.png, Screen Shot 2016-04-26 at 2.06.14 PM.png,
> Screen Shot 2016-04-26 at 2.07.06 PM.png, Screen Shot 2016-04-26 at 2.25.26
> PM.png, Screen Shot 2016-04-26 at 6.02.29 PM.png, remove_cslm.patch
>
>
> Here is a [~lhofhansl] special.
> When we construct the region scanner, we get our read point and then store it
> with the scanner instance in a Region scoped CSLM. This is done under a
> synchronize on the CSLM.
> This synchronize on a region-scoped Map creating region scanners is the
> outstanding point of lock contention according to flight recorder (My work
> load is workload c, random reads).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)