Enrico,

Sure, I'd be happy to. Will get something up in the next few days. I think we 
should be able to use  https://issues.apache.org/jira/browse/ZOOKEEPER-3781 for 
this.

On 2021/01/11 14:46:48, Enrico Olivelli <eolive...@gmail.com> wrote: 
> Stig,
> 
> Il giorno lun 11 gen 2021 alle ore 11:37 Stig Døssing <
> generalbas....@gmail.com> ha scritto:
> 
> > Sorry, I meant to say 3.5 introduced a check that snaphots exist, not that
> > the snapshot files don't exist in 3.4.
> >
> > On 2021/01/11 10:13:34, Stig D��ssing <generalbas....@gmail.com> wrote:
> > > Hi,
> > >
> > > Zookeeper 3.5 introduced snapshot files, which did not exist in 3.4. 3.5
> > won't start if data is present, and there is no snapshot file.
> > >
> > > https://issues.apache.org/jira/browse/ZOOKEEPER-3056 added an option to
> > disable this check, to enable migration from 3.4 clusters. The workaround
> > before then was to add an empty snapshot file to the dataDir.
> > >
> > > As far as I can tell, the intended method of upgrading from 3.4 is to
> > add snapshot.trust.empty=true to the Zookeeper configuration, upgrade to
> > 3.5.x, and remove the snapshot.trust.empty property once snapshots exist on
> > all nodes.
> > >
> > > Sadly this method turns out to be inconvenient, as upgraded nodes will
> > not write snapshots immediately. See
> > https://issues.apache.org/jira/browse/ZOOKEEPER-3781?focusedCommentId=17261317&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17261317
> > .
> > >
> > > The reason some nodes may not write snapshots seems to be that when a
> > new leader is elected, it may opt to send DIFF to the followers if they are
> > not too far behind. If a follower receives a DIFF, it will not write a
> > snapshot once NEWLEADER is received.
> > >
> > > Is this snapshot write skipped for efficiency reasons, or to maintain
> > correctness? If it is skipped only for efficiency, I think the upgrade
> > experience could be improved, by always writing a snapshot at
> > https://github.com/apache/zookeeper/blob/eeb053767c9e931ae72a2d8c59c0940da3da9679/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Learner.java#L739-L741
> > if snapshot.trust.empty=true.
> > >
> > > This would allow people upgrading from 3.4.x to set
> > snapshot.trust.empty=true, upgrade and boot the cluster, and remove the
> > property again very shortly after the reboot.
> > >
> > > What do you think?
> >
> 
>  Thanks for your proposal.
> Probably it would be better to create that snapshot not at every
> "NEWLEADER" but only in the case there is no other snapshot.
> 
> Do you want to create a JIRA and provide a patch ?
> 
> 
> Enrico
> 
> >
> > >
> >
> 

Reply via email to