2010/4/22 Даниел Симеонов <dsimeo...@gmail.com>:
> 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.

I believe that the proposed implementation of vector clocks in
Cassandra allows the servers to do the reconciliation through
"plugins". So you'd do a "compareAndSet" "plugin", or Cassandra might
ship with one out of the box (there are several obvious ones that
should probably be right in the box).

> Regarding the second question I understood that without again the vector
> clocks and client reconciliation then there is this causality problem
> currently in Cassandra.

In general, Cassandra 0.6 has little protection against overlapping
and conflicting writes.

> About the third question, isn't it the same as if the writes and reads both
> use QUORUMs?

I think that you can use Consistency.ALL on write, and Consistency.ONE
on read, to optimize for read-speed, and the opposite to optimize for
write speed.

> 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?

Counters are the "classic" example of why you need vector clocks.

The description for CASSANDRA-580 is "Allow a ColumnFamily to be
versioned via vector clocks, instead of long timestamps. Purpose:
enable incr/decr; flexible conflict resolution."

https://issues.apache.org/jira/browse/CASSANDRA-580

 Paul Prescod

Reply via email to