incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Даниел Симеонов <dsimeo...@gmail.com>
Subject Re: questions about consistency
Date Thu, 22 Apr 2010 07:20:02 GMT
Hi Paul,
    Thank you for your answer, about the first question, I wondered if it is
possible to workaround this issue but relaxing some consistency, as I
understand you it should be possible to implement this compareAndSet
operation with the presence of vector clocks, then the client is going to
reconcile the data.
Regarding the second question I understood that without again the vector
clocks and client reconciliation then there is this causality problem
currently in Cassandra.
About the third question, isn't it the same as if the writes and reads both
use QUORUMs?
What about implementation of counters, currently it seems it is not
implementable in 'Cassandra', will the vector clocks help here? Do you have
experiences with counters in Cassandra?

Best regards, Daniel.

2010/4/21 Paul Prescod <prescod@gmail.com>

> I'm not an expert, so take what I say with a grain of salt.
>
> 2010/4/21 Даниел Симеонов <dsimeonov@gmail.com>:
> > Hello,
> >    I am pretty new to Cassandra and I have some questions, they may seem
> > trivial, but still I am pretty new to the subject. First is about the
> lack
> > of a compareAndSet() operation, as I understood it is not supported
> > currently in Cassandra, do you know of use cases which really require
> such
> > operations and how these use cases currently workaround this .
>
> I think your question is paradoxical. If the use case really requires
> the operation then there is no workaround by definition. The existence
> of the workaround implies that the use case really did not require the
> operation.
>
> Anyhow, vector clocks are probably relevant to this question and your next
> one.
>
> > Second topic I'd like to discuss a little bit more is about the read
> repair,
> > as I understand is that it is being done by the timestamps supplied by
> the
> > client application servers. Since computer clocks (which requires
> > synchronization algorithms working regularly) diverge there should be a
> time
> > frame during which the order of the client request written to the
> database
> > is not guaranteed, do you have real world experiences with this? Is this
> > similar to the casual consistency (
> > http://en.wikipedia.org/wiki/Causal_consistency ) .What happens if two
> > application servers try to update the same data and supply one and the
> same
> > timestamp (it could happen although rarely), what if they try to update
> > several columns in batch operation this way, is there a chance that the
> > column value could be intermixed between the two update requests?
>
> All of this is changing with vector clocks in Cassandra 0.7.
>
> https://issues.apache.org/jira/browse/CASSANDRA-580
>
> > I have one last question about the consistency level ALL, do you know of
> > real use cases where it is required (instead of QUORUM) and why (both
> read
> > and write)?
>
> It would be required when your business rules do not allow any client
> to read the old value. For example if it would be illegal to provide
> an obsolete stock value.
>
> > Thank you very much for your help to better understand 'Cassandra'!
> > Best regards, Daniel.
> >
>

Mime
View raw message