>From looking at the 3.4.5 code, it seems like
ZooKeeperServer.takeSnapshot() method does not have protection against
being invoked twice by different threads. There is some protection against
spawning two snapshot threads from SyncRequestProcessor.run() but this is
just about it.
Is there any inherent danger in having two ZooKeeperServer.takeSnapshot()
overlapping their execution in time? Is it a thread to data integrity or is
it just a possible performance issue?
I'm thinking of adding a new four-letter command to force a snapshot
creation by a command from outside before snapCount threshold is reached.
Is it safe to invoke ZooKeeperServer.takeSnapshot() from a four-word
command handler or does it need to be submitted as a Request object into
the pipeline of Request Processors?