[ 
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)

Reply via email to