hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Duo Zhang (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-17608) Add suspend support for RawScanResultConsumer
Date Thu, 09 Feb 2017 05:50:42 GMT

     [ https://issues.apache.org/jira/browse/HBASE-17608?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Duo Zhang updated HBASE-17608:
------------------------------
    Description: 
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.

  was: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. We
should just stop fetching data and leave the scanner open at RS.


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

Mime
View raw message