[
https://issues.apache.org/jira/browse/HBASE-15325?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15186624#comment-15186624
]
Anoop Sam John commented on HBASE-15325:
----------------------------------------
Ya there will be only client side change
- When a batch limit is NOT set on the scan, we will see whether the last
fetched Result is a partial one. If so we will start with that row in the next
scanner. If not the start row of the new scanner will be next row(as in current
code). Also we will skip the cells what we already got. Or even we can clear
the Results on this row what we have now
- When a batch is set on scan, we will treat always that we are at middle of
the row. And the new scanner will be having a start of row = this last row.
Only exception is a short circuit (to avoid fetching one more row) where we
will make next row as new scanner start row, when the last returned batch on
this row is NOT partial but has lesser #cells than the batch size. Here we are
sure that this is the last possible batch.
> ResultScanner allowing partial result will miss the rest of the row if the
> region is moved between two rpc requests
> -------------------------------------------------------------------------------------------------------------------
>
> Key: HBASE-15325
> URL: https://issues.apache.org/jira/browse/HBASE-15325
> Project: HBase
> Issue Type: Bug
> Components: dataloss, Scanners
> Affects Versions: 1.2.0, 1.1.3
> Reporter: Phil Yang
> Assignee: Phil Yang
> Priority: Critical
> Attachments: 15325-test.txt, HBASE-15325-v1.txt, HBASE-15325-v2.txt,
> HBASE-15325-v3.txt, HBASE-15325-v5.txt, HBASE-15325-v6.1.txt,
> HBASE-15325-v6.2.txt, HBASE-15325-v6.3.txt, HBASE-15325-v6.4.txt,
> HBASE-15325-v6.5.txt, HBASE-15325-v6.txt
>
>
> HBASE-11544 allow scan rpc return partial of a row to reduce memory usage for
> one rpc request. And client can setAllowPartial or setBatch to get several
> cells in a row instead of the whole row.
> However, the status of the scanner is saved on server and we need this to get
> the next part if there is a partial result before. If we move the region to
> another RS, client will get a NotServingRegionException and open a new
> scanner to the new RS which will be regarded as a new scan from the end of
> this row. So the rest cells of the row of last result will be missing.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)