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

Lars Hofhansl commented on HBASE-12311:
---------------------------------------

The logic would something like this:
* replace SEEK_COL with SKIP when when the mean size of all columns in <= 1/2 
HBlock and standard deviation is < 1 HBlock and the max size of any column is < 
4 HFileBlocks.

same for row:
* replace SEEK_ROW when when the mean size of all rows in <= 1/2 HBlock  and 
standard deviation is < 1 HBlocks and the max size of any row is < 4 HBlocks

(I might not do the standard deviation part, not sure it's really needed)

So we'll avoid using SKIPs when a SEEK will with some probably land outside of 
the current block. If that is the case we'll use SEEK_COL, SEEK_ROW as before. 
SEEK_WITH_HINT would always be executed as SEEK_WITH_HINT.


> Version stats in HFiles?
> ------------------------
>
>                 Key: HBASE-12311
>                 URL: https://issues.apache.org/jira/browse/HBASE-12311
>             Project: HBase
>          Issue Type: Brainstorming
>            Reporter: Lars Hofhansl
>         Attachments: 12311.txt, CellStatTracker.java
>
>
> In HBASE-9778 I basically punted the decision on whether doing repeated 
> scanner.next() called instead of the issueing (re)seeks to the user.
> I think we can do better.
> One way do that is maintain simple stats of what the maximum number of 
> versions we've seen for any row/col combination and store these in the 
> HFile's metadata (just like the timerange, oldest Put, etc).
> Then we estimate fairly accurately whether we have to expect lots of versions 
> (i.e. seek between columns is better) or not (in which case we'd issue 
> repeated next()'s).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to