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