[
https://issues.apache.org/jira/browse/HBASE-16225?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15380470#comment-15380470
]
Duo Zhang commented on HBASE-16225:
-----------------------------------
The most confusing logic for me currently is that, we can get a place holder
cell from {{KeyValueHeap}}, such as {{LastOnRowCell}}. I used to think we only
use these cells to seek, or represent an internal state which means we need to
seek later(lazy seek). But now we can get a place holder cell from
{{KeyValueHeap}}, pass it to a {{ScanQueryMatcher}}, but do not add it to the
result list so after a round the result list is still empty. And we will start
a new round to fetch the real cells.
The logic here is like a magic for me... Let me dig more. And does it really
make things faster? In the first round we get nothing...
Thanks.
> Refactor ScanQueryMatcher
> -------------------------
>
> Key: HBASE-16225
> URL: https://issues.apache.org/jira/browse/HBASE-16225
> Project: HBase
> Issue Type: Improvement
> Reporter: Duo Zhang
>
> As said in HBASE-16223, the code of {{ScanQueryMatcher}} is too complicated.
> I suggest that we can abstract an interface and implement several sub classes
> which separate different logic into different implementations. For example,
> the requirements of compaction and user scan are different, now we also need
> to consider the logic of user scan even if we only want to add a logic for
> compaction. And at least, the raw scan does not need a query matcher... we
> can implement a dummy query matcher for it.
> Suggestions are welcomed. Thanks.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)