hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ted Yu (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-9751) Excessive readpoints checks in MemStoreScanner and StoreFileScanner
Date Sat, 12 Oct 2013 18:34:49 GMT

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

Ted Yu commented on HBASE-9751:

In MemStoreScanner, around line 823:
    private synchronized boolean seekInSubLists(KeyValue key){
      kvsetNextRow = getNext(kvsetIt);
      snapshotNextRow = getNext(snapshotIt);
getNext() is private.
One small optimization is to lift the call to MultiVersionConsistencyControl.getThreadReadPoint()
outside getNext() so that we can pass the readpoint to getNext(). This saves one call to getThreadReadPoint().

> 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
>         Attachments: 9751-0.94.txt, 9751-trunk.txt
> 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

View raw message