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

Gary Helmling commented on HBASE-18358:
---------------------------------------

[~jerryhe] as I understand it, creating a flush snapshot guarantees that the 
snapshot contains writes that were acknowledged at least at the time when you 
issue the command.  Without this, it seems pretty useless.  Am I 
misunderstanding the guarantee?

This change just fixes snapshots to guarantee that a flush was 
correctly/successfully performed on every region.

With the first implementation, we could leave memstores unflushed, meaning you 
could have as much as an hour's worth of data from that store missing from the 
snapshot, assuming a periodic flush configuration of 1 hour max.



> Backport HBASE-18099 'FlushSnapshotSubprocedure should wait for concurrent 
> Region#flush() to finish' to branch-1.3
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-18358
>                 URL: https://issues.apache.org/jira/browse/HBASE-18358
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Critical
>         Attachments: 18358.branch-1.3.patch, 18358.v2.txt, 18358.v3.txt
>
>
> HBASE-18099 was only integrated to branch-1 and above in consideration of 
> backward compatibility.
> This issue is to backport the fix to branch-1.3 and branch-1.2.
> Quoting Gary's suggestion from the tail of HBASE-18099 :
> {quote}
> Sure, don't add the method to Region, just to HRegion, check for an instance 
> of HRegion in FlushSnapshotSubprocedure and cast the instance before calling 
> the method.
> {quote}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to