Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
ZooKeeper Test & 2013 ZooKeeper Analysis #399
I had some questions regarding the Jepsen ZooKeeper (ZK) test.
In the analysis of 2013 it is written that
This seems like a weird statement. Linearizability would imply that when clients want to read something, the clients see the most recent updates. Therefore, if clients drift behind by an arbitrary duration, how can this be a linearizable property? Maybe, you were referring to the fact that writes are linearizable? But what does it mean for just the writes to be linearizable? A history with only writes is clearly linearizable. Or, maybe you were referring to the clients of ZooKeeper and implying that if a client does not contact a ZK server, then the client might contain stale data at a specific point in time?
Also, it is written in the analysis:
What does it mean for a state to be linearizable? This seems like a weird statement as well, especially in regards to what I state in the following question.
It is well-known that ZooKeeper does not provide linearizable reads and there is no way for ZooKeeper to provide such reads. Even the use of the
Why check for linearizability when the system ZK is not linearizable? Were you trying to find linearizability issues first and then see if they were more serious?
Was this Jepsen test, the same one you used for your analysis?
P.S. Thanks for all your work all these years on Jepsen and all the lovely analyses.
This may make more sense given...
I did not, in fact, know this; at time of this writing (2013) my understanding was that all writes were linearizable, and reads could be promoted to linearizability via
I based my understanding on discussions with ZK maintainers, and on the ZAB paper, which makes an argument regarding the use of
If ZK isn't linearizable, it's likely the case that the tests I designed for ZK just weren't stressful enough to observe linearizability violations--it could be, for instance, that they're sensitive to the exact timing of leader election and shutdown. This was a nights-and-weekends project with a tight schedule, and I didn't have much time to go in depth.
I think so, though it looks like other people have made some commits since.