cassandra-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rishi Bhardwaj <>
Subject Re: Atomic Compare and Swap
Date Sun, 20 Jun 2010 22:33:17 GMT
Hi David

You are right that the write path for atomic compare and swap would become as slow as the
read path but that would be for compare and swap operation only. In general the writes can
remain fast and need not be changed in any way. I mean we don't have to slow down writes,
only the compare and swap writes for a column would need to be slow. Can't we say that there
is no guarantee if normal write for a column interferes with a compare and swap operation
for the same column. The user (client) needs to take care of not to use compare and swap and
normal writes on the same column.

Heres another thought I had, if say the user always wrote with quorum (or to all) nodes then
can't we implement CAS (compare and swap) assuming that user employs logical timestamp and
Cassandra doesn't allow writes to a column with same or older timestamp. Here's the scenario
I am thinking about:
Say we use logical timestamp for a column value and lets assume the current timestamp is t.
Now say two clients read this column and generate concurrent CAS (compare and swap) operations
on timestamp t and for both the writes the resulting new timestamp would become (t+1). Now
if we don't allow writes to a column with same timestamp then only one of these writes would
succeed. Of course another assumption is that if a third CAS write with compare on logical
timestamp (t - 1) came in, that would be denied as I believe Cassandra doesn't allow "older"
writes to win over "newer" writes. Do you think such a thing can be accomplished?

Thanks for all the help,

From: David Timothy Strauss <>
Sent: Sun, June 20, 2010 3:08:18 PM
Subject: Re: Atomic Compare and Swap

That is impossible to implement without making the write path at least as slow as the read
path. Things like this typically get layed on Cassandra by using an external locking framework,
like Zookeeper.

-----Original Message-----
From: Rishi Bhardwaj <>
Date: Sun, 20 Jun 2010 14:57:46 
To: <>
Subject: Atomic Compare and Swap


I was wondering if Cassandra has any plans for supporting atomic compare and swap operation
on a column value? Compare could be on timestamp for the column or the column value itself
and the write of course is on the column value + a new timestamp. If there are no plans on
supporting such an operation, how difficult would it be to implement such a functionality?
I would be interested to start working on this if no one else is doing so and would really
appreciate any pointers in the right direction in how to contribute here.


  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message