[
https://issues.apache.org/jira/browse/HBASE-9751?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13793259#comment-13793259
]
Lars Hofhansl commented on HBASE-9751:
--------------------------------------
Was just about to file this :)
Couple of comments:
# HFiles are immutable, but they can contain KVs that a current scanner should
not see.
# I have a patch that verifies the readpoint in HFiles only when needed.
# Factoring this out of the memstore turns out to be harder. Memstore.next()
can be called from any thread at any time), so I don't see how that can be
easily fixed.
The patch from #2 saves about 3.2% overall during a scan where all data is
filtered at the server with a value filter.
> Excessive readpoints checks in MemStoreScanner and StoreFileScanner
> --------------------------------------------------------------------
>
> Key: HBASE-9751
> URL: https://issues.apache.org/jira/browse/HBASE-9751
> Project: HBase
> Issue Type: Bug
> Affects Versions: 0.98.0, 0.94.12, 0.96.0
> Reporter: Vladimir Rodionov
> Assignee: Lars Hofhansl
>
> It seems that usage of skipKVsNewerThanReadpoint in StoreFileScanner can be
> greatly reduced or even eliminated all together (HFiles are immutable and no
> new KVs can be inserted after scanner instance is created). The same is true
> for MemStoreScanner which checks readpoint on every next() and seek(). Each
> readpoint check is ThreadLocal.get() and it is quite expensive.
--
This message was sent by Atlassian JIRA
(v6.1#6144)