incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jason Tang <ares.t...@gmail.com>
Subject Consistent problem when solve Digest mismatch
Date Mon, 04 Mar 2013 08:26:24 GMT
Hi

  Previous I met a consistency problem, you can refer the link below for
the whole story.
http://mail-archives.apache.org/mod_mbox/cassandra-user/201206.mbox/%3CCAFb+LUxna0jiY0V=AvXKzUdxSjApYm4zWk=Ka9LJM-txc04Gjw@mail.gmail.com%3E

  And after check the code, seems I found some clue of the problem. Maybe
some one can check this.

  For short, I have Cassandra cluster (1.0.3), The consistency level is
read/write quorum, replication_factor is 3.

  Here is event sequence:

seqID   NodeA   NodeB   NodeC
1.         New      New       New
2.         Update  Update   Update
3.         Delete   Delete

When try to read from NodeB and NodeC, "Digest mismatch" exception
triggered, so Cassandra try to resolve this version conflict.
But the result is value "Update".

Here is the suspect root cause, the version conflict resolved based on time
stamp.

Node C local time is a bit earlier then node A.

"Update" requests sent from node C with time stamp 00:00:00.050, "Delete"
sent from node A with time stamp 00:00:00.020, which is not same as the
event sequence.

So the version conflict resolved incorrectly.

It is true?

If Yes, then it means, consistency level can secure the conflict been
found, but to solve it correctly, dependence one time synchronization's
accuracy, e.g. NTP ?

Mime
View raw message