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

Jonathan Gray commented on HBASE-1738:
--------------------------------------

+1 for commit after confirmation that tests pass from stack

> Scanner doesnt reset when a snapshot is created, could miss new updates into 
> the 'kvset' (active part)
> ------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-1738
>                 URL: https://issues.apache.org/jira/browse/HBASE-1738
>             Project: Hadoop HBase
>          Issue Type: Bug
>    Affects Versions: 0.20.0
>            Reporter: ryan rawson
>            Assignee: stack
>             Fix For: 0.20.0
>
>         Attachments: 1738-v2.patch, 1738-v3-withheapsizefix.patch, 
> 1738-v3.patch, 1738.patch
>
>
> when a Scanner is created, it creates 2 MemStoreScanners on the kvset and the 
> snapshot (internal names of Memstore)... if the snapshot is originally empty, 
> it only creates the 1, for kvset.  When the snapshot is created, the 
> outstanding Scanners now have a pointer to the tree that is now the snapshot, 
> but no pointer to the kvset.
> When the flush completes, the scanner will reset the memstore scanners and 
> 'see' the new values again.
> If there is a large delay between snapshot and finalization of the flush, 
> there can be a large period of time a scanner doesnt see 'new' values that 
> are being inserted. the canonical 'bad' case where this can do things is the 
> META scanner, and we end up with double assignment.
> The snapshot is really lightweight, it only takes out a small lock in 
> memstore, so im not sure there is an easy mechanism to hook to without 
> building out a bit more code or restructuring the memstore scanner.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to