cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ed Anuff ...@anuff.com>
Subject Re: Achieving isolation on single row modifications with batch_mutate
Date Tue, 30 Nov 2010 16:39:46 GMT
It's hard to tell without knowing the the nature of the data you're writing,
but you might want to think about whether you can embed any sort of version
number and/or checksum into the column names of the chunk columns.  That
way, you could very easily determine that the data you wanted to retrieve
was not yet available for reading.  Are you able do your partial blob
updates on an entire chunk at a time or do you need to read the blob chunk,
modify a portion of it, and then write it back?  If it's the former, then it
might be possible for this to be accomplished without a locking solution.

Ed

On Sat, Nov 27, 2010 at 8:12 AM, E S <tr1sklion@yahoo.com> wrote:

> 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