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

Duo Zhang commented on HBASE-17608:
-----------------------------------

Done sir.

The problem is even if we bring the mvcc read point when reopening scanner, we 
could still miss some data because we do not leave an record in the 
scannerReadPoints at RS side so the data maybe reclaimed by compaction. So the 
proper way is to leave scanner open at RS side, i.e., suspend the scanner, not 
close the scanner.

Thanks.

> Add suspend support for RawScanResultConsumer
> ---------------------------------------------
>
>                 Key: HBASE-17608
>                 URL: https://issues.apache.org/jira/browse/HBASE-17608
>             Project: HBase
>          Issue Type: Sub-task
>          Components: asyncclient, Client, scan
>    Affects Versions: 2.0.0
>            Reporter: Duo Zhang
>            Assignee: Duo Zhang
>             Fix For: 2.0.0
>
>         Attachments: HBASE-17608.patch, HBASE-17608-v1.patch
>
>
> Now for the AsyncResultScanner, we can only close the scanner if we reach the 
> cache size limit and open a new scanner later. This will breaks the region 
> level consistency.
> For example, you put 10 rows to the region, and open a scanner to scan it. 
> The scanner returns 5 rows at the first time and the cache is full, so it 
> closes the background scanner. And before you reopens the scanner to fetch 
> data, the remaining 5 rows has been deleted and a compaction makes them gone 
> for ever. Then after you reopen the scanner you can not see the remaining 5 
> rows.
> So here we should keep the scanner open at RS side to prevent the data below 
> the mvcc read point of this scanner being deleted.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to