Hello Evan
Why, in a scenario of resurrections of unacknowledged writes, don't we get
linearizability ? Can you give more detailed explanation on such scenario ?
@Oliver: true, the formal definition of linearizability is not related to
isolation. My bad. And for your question What does
This is my understanding, others disagree.
Sequential consistency: each program's order of reads is preserved
Linearizability: each program's order of all reads as well as writes
is preserved
Assume a single process is making reads and writes to the same
partition key, the replication factor is
Hello,
The fact that things can always change immediately is not an obstacle to
linearizability. The lack of linearizability manifests in inconsistency, i.e.
you read from multiple nodes and get different results.
What does Cassandra do in the case of inconsistent reads? Wait or
To the best of my knowledge, only guaranteed way is with an ACID compliant
system.
The examples other have already provided should give you a decent idea. If
that's not enough, you would need to read papers on CRDT's and how they
compare to ACID systems.
Quorum reads and writes in Cassandra guarantee sequential consistency.
The reason this doesn't satisfy linearizability is because
resurrections of unacknowledged writes can occur. A read of a
half-committed write will trigger synchronous read repair and the
order will be stable from that point
Cassandra in general can't provide guarantee any ordering of the executed
queries, since nodes may fail or rejoin the in arbitrary points in time.
But why can't it provide ordering for queries run at at least the quorum
level? Given that none of the updates get lost, why would order still an