cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aaron Morton <aa...@thelastpickle.com>
Subject Re: Transaction/Locking Support
Date Thu, 21 Oct 2010 01:32:22 GMT
There are no transactions or locking in cassandra, if you want them you need to use Zookeeper
or similar. 

Writes for a single mutation are atomic but  not isolated http://wiki.apache.org/cassandra/FAQ#batch_mutate_atomic 

More about consistency here http://wiki.apache.org/cassandra/ArchitectureOverview?highlight=(consistency) and
look for the original Dynamo paper also linked from the wiki. 

a) I think you are asking about isolation, e.g. something like REPEATABLE READ or better transaction
isolation for a read, this is not supported. AFAIK if you have a long running read that puts
column FOO into the result it *may* be possible for that column to be deleted before the read
completes. 

b) If multiple clients are writing to the same column at roughly the same time, one with the
highest timestamp will eventually win. However if your app relies of multiple threads updating
the shared state cassandra may not be the best match. 


Hope that helps. 
Aaron

On 21 Oct, 2010,at 01:34 PM, Wicked J <wickedj2010@gmail.com> wrote:

Hi,
I'm trying to persist the contents of my app. objects to Cassandra. The objects in here are
loosely modeled on key value (KV) stores. If the KV store is extended from HashMap and mapped
to a ColumnFamily with put and get ops mapping to insert/read from Cassandra. Then my questions
are: 

a) What operations in Cassandra can be considered to be atomic - reads? Is reading (of rows
by concurrent threads/clients) atomic across one Column Family or across multiple (e.g. two)
Column Families? assume get_range_slices ..with ConsistencyLevel.QUORUM
b) Consistency of write/update/delete ops across CF's by concurrent clients/threads? In order
to make them consistent or atomic, would insert(..) with ConsistencyLevel.QUORUM be a good
idea. Or would you recommend external components like ZooKeeper or Hazelcast etc to coordinate
such operations?

Thanks!

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