zookeeper-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jordan Zimmerman <jor...@jordanzimmerman.com>
Subject Re: Consistency Guarantees
Date Sun, 18 Aug 2019 19:33:59 GMT
Isn’t this a “no true Scotsman” argument? By this definition any eventually consistent
system can never be considered linearizable. Right?

====================
Jordan Zimmerman

> On Aug 18, 2019, at 1:47 PM, Karolos Antoniadis <karolos@gmail.com> wrote:
> 
> 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 <jordan@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 <karolos@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
>> 

Mime
View raw message