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 report
failure? I could not find that one in the docs. Thanks!
Best, Oliver
From: DuyHai Doan [mailto:[email protected]]
Sent: Thursday, October 16, 2014 1:59 AM
To: [email protected]
Subject: Re: Why is Quorum not sufficient for Linearization?
Hello Timmy
Even when you write and read using quorum, you still don't have isolation.
Example:
Client A write "John Doe" to 3 replicas. Since CL = Quorum, the coordinator
waits for 2 acks from the replicas before telling client A that the write is
successful.
Now suppose that between the first ack and second ack, another client B writes
"Helen Sue" at quorum.
If client A reads the data immediately after the 2nd ack, it would see "Helen
Sue" and not "John Doe".
Since you don't have isolation, linearization is not possible. The only way to
achieve it is to rely on Paxos using lightweight transaction. But even then,
you only have linearization on 1 partition only.
On Thu, Oct 16, 2014 at 1:45 AM, Timmy Turner
<[email protected]<mailto:[email protected]>> wrote:
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 issue?
Can you maybe illustrate a scenario which shows how/where the order would get
lost if writes and reads always occurred with quorum consistency?
***********************************************************************************************************************
This email message and any attachments are intended solely for the use of the
addressee. If you are not the intended recipient, you are prohibited from
reading, disclosing, reproducing, distributing, disseminating or otherwise
using this transmission. If you have received this message in error, please
promptly notify the sender by reply email and immediately delete this message
from your system. This message and any attachments may contain information that
is confidential, privileged or exempt from disclosure. Delivery of this message
to any person other than the intended recipient is not intended to waive any
right or privilege. Message transmission is not guaranteed to be secure or free
of software viruses.
***********************************************************************************************************************