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

Michael Han commented on ZOOKEEPER-2420:
----------------------------------------

bq. However, in most cases, the snapshot that matters is the latest and not the 
oldest, so even if we screw up with respect to the oldest, we will very likely 
have all txn logs to make it work.
My guess is in practice production clusters usually retain more than one 
snapshot; otherwise, with one snapshot it's both the old and the new one, which 
might make the issue easier to appear.

> Autopurge deletes log file prior to oldest retained snapshot even though 
> restore may need it
> --------------------------------------------------------------------------------------------
>
>                 Key: ZOOKEEPER-2420
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2420
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: server
>            Reporter: Ed Rowe
>            Assignee: Ed Rowe
>         Attachments: ZOOKEEPER-2420.patch, ZOOKEEPER-2420.patch_v2, 
> ZOOKEEPER-2420.patch_v3
>
>
> Autopurge retains all log files whose zxid are >= the zxid of the oldest 
> snapshot file that it is going to retain (in PurgeTxnLog 
> retainNRecentSnapshots()). However, unless there is a log file with the same 
> zxid as the oldest snapshot file being retained (and whether log file and 
> snapshot file zxids are equal is timing dependent), loading the database from 
> snapshots/logs will start with the log file _prior_ to the snapshot's zxid. 
> Thus, to avoid data loss autopurge should retain the log file prior to the 
> oldest retained snapshot as well, unless it verifies that it contains no 
> zxids beyond what the snapshot contains or there is a log file whose zxid == 
> snapshot zxid.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to