You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Phil Yang (JIRA)" <ji...@apache.org> on 2016/02/25 07:34:18 UTC

[jira] [Commented] (HBASE-15325) ResultScanner allowing partial result will reset to the start of the row if the region is moved between two rpc requests

    [ https://issues.apache.org/jira/browse/HBASE-15325?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15166811#comment-15166811 ] 

Phil Yang commented on HBASE-15325:
-----------------------------------

I think we have two solutions:

Cache the last cell of the last result from loadcache(), and skip all Cells not larger than this when we loadcache() next time. It is simple but will need server response some repeat cells.

Cache the last cell of the last result from loadcache(), and tell the new server where we should start for this row. Server can seek to the right position and response the right cells.

It seems that seek is also a "skip" logic so the second solution will use the same MemStore/Disk resource, so the only difference is network and time usage. Feel free to correct me if I am wrong.

> ResultScanner allowing partial result will reset to the start 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
>    Affects Versions: 1.1.3
>            Reporter: Phil Yang
>            Assignee: Phil Yang
>            Priority: Critical
>         Attachments: 15325-test.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 start of this row. So we will see the cells which have been seen before.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)