[
https://issues.apache.org/jira/browse/HBASE-15484?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15656613#comment-15656613
]
Yu Li commented on HBASE-15484:
-------------------------------
Thanks [~yangzhe1991] for the ping.
bq. The scan API is too confusing now with caching, batching,
allowPartialResults, setMaxResultsPerColumnFamily, and maxResultSize. We are
not making the life of the user easy
Cannot agree more, it's really complicated and confusing, even for developers
I'd say...
bq. I think only allowPartial and maxResultSize are needed... setBatch might be
still useful for a paging kind of results presentation way?
Agree we only maintain these two semantics. For the paging case, could we use
{{setCaching}} to achieve the goal? Like if we want to display 20 rows per
page, just set caching to 20, call scan.next and display each time? Or please
correct me if I misunderstood the meaning of "Paging" here (Smile)
[~anoop.hbase]
bq. Should we get rid of batching and caching, setMaxResultsPerColumnFamily
(turn them into no-ops) and only do allowPartialResults and maxResultSize? How
radical it will be for 2.0?
This is some interface change (incompatibility) and would cause additional
efforts for migration from 1.x to 2.0. I'm not that familiar with our strategy
here but maybe slowing down a little bit is better? Like marking the interface
deprecated and invokes the unified logic internal in 2.0, then remove them in
some later releases? I'm not that confident about educating customers, maybe my
limited personal experience though :-)
> Correct the semantic of batch and partial
> -----------------------------------------
>
> Key: HBASE-15484
> URL: https://issues.apache.org/jira/browse/HBASE-15484
> Project: HBase
> Issue Type: Bug
> Affects Versions: 1.2.0, 1.1.3
> Reporter: Phil Yang
> Assignee: Phil Yang
> Fix For: 2.0.0
>
> Attachments: HBASE-15484-v1.patch, HBASE-15484-v2.patch,
> HBASE-15484-v3.patch, HBASE-15484-v4.patch
>
>
> Follow-up to HBASE-15325, as discussed, the meaning of setBatch and
> setAllowPartialResults should not be same. We should not regard setBatch as
> setAllowPartialResults.
> And isPartial should be define accurately.
> (Considering getBatch==MaxInt if we don't setBatch.) If
> result.rawcells.length<scan.getBatch && result is not the last part of this
> row, isPartial==true, otherwise isPartial == false. So if user don't
> setAllowPartialResults(true), isPartial should always be false.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)