hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yu Li (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-15484) Correct the semantic of batch and partial
Date Fri, 11 Nov 2016 09:27:59 GMT

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

View raw message