incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From E S <tr1skl...@yahoo.com>
Subject Achieving isolation on single row modifications with batch_mutate
Date Sat, 27 Nov 2010 16:12:42 GMT
I'm trying to figure out the best way to achieve single row modification 
isolation for readers.

As an example, I have 2 rows (1,2) with 2 columns (a,b).  If I modify both rows, 
I don't care if the user sees the write operations completed on 1 and not on 2 
for a short time period (seconds).  I also don't care if when reading row 1 the 
user gets the new value, and then on a re-read gets the old value (within a few 
seconds).  Because of this, I have been planning on using a consistency level of 
one.

However, if I modify both columns A,B on a single row, I need both changes on 
the row to be visible/invisible atomically.  It doesn't matter if they both 
become visible and then both invisible as the data propagates across nodes, but 
a half-completed state on an initial read will basically be returning corrupt 
data given my apps consistency requirements.  My understanding from the FAQ that 
this single row multicolumn change provides no read isolation, so I will have 
this problem.  Is this correct?  If so:

Question 1:  Is there a way to get this type of isolation without using a 
distributed locking mechanism like cages?

Question 2:  Are there any plans to implement this type of isolation within 
Cassandra?

Question 3:  If I went with a distributed locking mechanism, what consistency 
level would I need to use with Cassandra?  Could I still get away with a 
consistency level of one?  It seems that if the initial write is done in a 
non-isolated way, but if cross-node row synchronizations are done all or 
nothing, I could still use one.

Question 4:  Does anyone know of a good c# alternative to cages/zookeeper?

Thanks for any help with this!



      

Mime
View raw message