Hi all,

I would like to ask about creating snapshots and what is and what should be
counting against snapCount.

We are upgrading from 3.4.14 to 3.7 and we found strange behaviour in some
of our tests. After further investigations and testing I believe that there
is a change between those two versions:
3.4.14 - transactions written to transaction log are counted against
snapCount to see when the snapshot should be taken
3.7 - all transactions (read & write) are counted and the trigger for
creating snapshot afterwards is operation which is written to transaction
log

I believe this change has been introduced by
https://issues.apache.org/jira/browse/ZOOKEEPER-3244 by changing the
location where the value (checked against snapCount) is incremented.

The questions are:
1) do I have this observation right?
2) is this change intended or is it a bug and ticket should be created?


Further details:
what is happening for me is (on 3.7) that if I put snapCount low and run
multiple read operations followed by restart of client (createSession is
written to transaction log) I get new snapshot and the log is nearly empty:
...
7/16/21 10:34:38 AM CEST session 0x100008597880008 cxid 0x8 zxid 0xaa28
closeSession v{}
7/16/21 10:35:25 AM CEST session 0x100008597880009 cxid 0x0 zxid 0xaa29
createSession 10000
EOF reached after 2 txns.

On 3.4.14 I can run this forever (well, I suppose I will hit the snapCount
eventually) without creating a snapshot.

BR and thanks for any new insight,
Ondrej Malek

Reply via email to