hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "stack (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-10117) Avoid synchronization in HRegionScannerImpl.isFilterDone
Date Tue, 10 Dec 2013 07:23:22 GMT

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

stack commented on HBASE-10117:

bq. Now, why is RegionScannerImpl synchronized at all? Do we ever have multiple client threads
at the same time call next() on the same RegionScanner?

You the man [~lhofhansl]  Can we do anything to ensure multiple threads from same client is
just not possible?

> Avoid synchronization in HRegionScannerImpl.isFilterDone
> --------------------------------------------------------
>                 Key: HBASE-10117
>                 URL: https://issues.apache.org/jira/browse/HBASE-10117
>             Project: HBase
>          Issue Type: Bug
>          Components: Performance
>            Reporter: Lars Hofhansl
>            Assignee: Lars Hofhansl
>             Fix For: 0.94.15, 0.96.2, 0.98.1, 0.99.0
>         Attachments: 10117-0.94-v2.txt, 10117-0.94-v3.txt, 10117-0.94.txt, 10117-trunk-v2.txt,
> A while ago I introduced HRegoinScannerImpl.nextRaw() to allow coprocessors and scanners
with caching > 1 to avoid repeated synchronization during scanning (which puts up memory
fences, which in turn slows things down on multi core machines).
> Looking at the code again I see that isFilterDone() is called from nextRaw() and isFilterDone()
is synchronized.
> The caller of nextRaw is required to ensure single threaded access to nextRaw() anyway,
we can call an unsynchronized internal version of isFilterDone().

This message was sent by Atlassian JIRA

View raw message