[ 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.