Hi Jordan, When Aphyr tested ZooKeeper, he did not seem to know that it is not linearizable. See here: https://github.com/jepsen-io/jepsen/issues/399, where I pointed-out that even with *sync + read*, ZooKeeper might return stale data.
ZooKeeper can only be considered linearizable if we assume that specific timing constraints apply. Naturally, in a real system, we cannot make such assumptions if we want to be 100% safe. For instance, if the time(TCP timeout) > (syncLimit * tickTime), ZooKeeper provides linearizable reads. However, if this does not hold (e..g, skewed clocks), then ZooKeeper might return stale data. To conclude, I do not think we can argue that ZooKeeper is linearizable. Cheers, Karolos On Sun, 18 Aug 2019 at 11:34, Jordan Zimmerman <jor...@jordanzimmerman.com> wrote: > ZooKeeper _is_ linearizable. I’m pretty sure the ZAB paper talks about it. > Aphyr does as well here: https://aphyr.com/posts/291-jepsen-zookeeper > > ==================== > Jordan Zimmerman > > > On Aug 18, 2019, at 1:23 PM, Karolos Antoniadis <karo...@gmail.com> > wrote: > > > > Hello everyone, > > > > I was wondering on the exact consistency guarantees that ZooKeeper > provides. > > It seems that ZooKeeper does not provide strong consistency (i.e., > > linearizability) since reads could potentially return arbitrarily old > > values. > > On the other hand, ZooKeeper provides sequential consistency, since the > > order of operations of a specific client is respected and all operations > > appear to take place in some total order ( > > https://jepsen.io/consistency/models/sequential). > > However, ZooKeeper provides linearizable writes, and therefore it > provides > > something stronger than sequential consistency, but still not as strong > as > > linearizability. In other words, ZooKeeper guarantees are somewhere > between > > sequential consistency and linearizability. > > Is there a specific name for the specific consistency guarantees that > > ZooKeeper provides? > > What would the ZooKeeper community claim about the consistency guarantees > > of ZooKeeper? > > > > Best Regards, > > Karolos >