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

Lars Hofhansl edited comment on HBASE-17958 at 10/18/17 4:40 AM:
-----------------------------------------------------------------

So I just ran a things through a profiler for some unrelated stuff and now find 
that a whopping *third* of the time for the scan I am doing is spent in 
{{trySkipToNextRow}}. That is certainly what I had intended with my original 
idea.

Looking into that function (in branch-1) I see that each time we SKIP 
(heap.next()) we re-check the next indexed key.

It's entirely possible that I am missing something... But it seems to me we 
should check for SEEK outside of the loop once, then either return false, or 
unconditionally continue SKIP'ing along.

[~Apache9], [~zghaobac].


was (Author: lhofhansl):
So I just ran a things through a profiler for some unrelated stuff and now find 
that a whopping *third* of the scan I am doing is spent in 
{{trySkipToNextRow}}. That is certainly what I had intended with my original 
idea.

Looking into that function (in branch-1) I see that each time we SKIP 
(heap.next()) we re-check the next indexed key.

It's entirely possible that I am missing something... But it seems to me we 
should check for SEEK outside of the loop once, then either return false, or 
unconditionally continue SKIP'ing along.

[~Apache9], [~zghaobac].

> Avoid passing unexpected cell to ScanQueryMatcher when optimize SEEK to SKIP
> ----------------------------------------------------------------------------
>
>                 Key: HBASE-17958
>                 URL: https://issues.apache.org/jira/browse/HBASE-17958
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Guanghao Zhang
>            Assignee: Guanghao Zhang
>             Fix For: 2.0.0, 1.4.0
>
>         Attachments: 0001-add-one-ut-testWithColumnCountGetFilter.patch, 
> HBASE-17958-branch-1.patch, HBASE-17958-branch-1.patch, 
> HBASE-17958-branch-1.patch, HBASE-17958-branch-1.patch, HBASE-17958-v1.patch, 
> HBASE-17958-v2.patch, HBASE-17958-v3.patch, HBASE-17958-v4.patch, 
> HBASE-17958-v5.patch, HBASE-17958-v6.patch, HBASE-17958-v7.patch, 
> HBASE-17958-v7.patch
>
>
> {code}
> ScanQueryMatcher.MatchCode qcode = matcher.match(cell);
> qcode = optimize(qcode, cell);
> {code}
> The optimize method may change the MatchCode from SEEK_NEXT_COL/SEEK_NEXT_ROW 
> to SKIP. But it still pass the next cell to ScanQueryMatcher. It will get 
> wrong result when use some filter, etc. ColumnCountGetFilter. It just count 
> the  columns's number. If pass a same column to this filter, the count result 
> will be wrong. So we should avoid passing cell to ScanQueryMatcher when 
> optimize SEEK to SKIP.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to