hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lars Hofhansl (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-10060) Unsynchronized scanning
Date Sun, 01 Dec 2013 07:10:36 GMT

     [ https://issues.apache.org/jira/browse/HBASE-10060?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Lars Hofhansl updated HBASE-10060:
----------------------------------

    Attachment: 10060-trunk-v2.txt

This fixed TestAtomicOperation, by always initializing syncObject, even when it is later overwritten
with the resp RegionScannerImpl in the normal scanner case.
This is correct, because when it matters, we always sync on the RegionScannerImpl methods.

Works, but is a bit fragile.

> Unsynchronized scanning
> -----------------------
>
>                 Key: HBASE-10060
>                 URL: https://issues.apache.org/jira/browse/HBASE-10060
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Lars Hofhansl
>         Attachments: 10060-trunk-v2.txt, 10060-trunk.txt
>
>
> HBASE-10015 has some lengthy discussion. The solution there ended up replacing synchronized
with ReentrantLock, which - somewhat surprisingly - yielded a non-trivial improvement for
tall tables.
> The goal should be to avoid locking in StoreScanner at all. StoreScanner is only accessed
by a single thread *except* when we have a concurrent flush or a compaction, which is rare
(we'd acquire and release the lock millions of times per second, and compact/flush a few time
an hour at the most).



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Mime
View raw message