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