cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jens Rantil <>
Subject Re: Isolation in case of Single Partition Writes and Batching with LWT
Date Sun, 11 Sep 2016 20:49:09 GMT

This might be off-topic, but you could always use Zookeeper locking and/or
Apache Kafka topic keys for doing things like this.


On Tuesday, September 6, 2016, Bhuvan Rawal <> wrote:

> Hi,
> We are working to solve on a multi threaded distributed design which in
> which a thread reads current state from Cassandra (Single partition ~ 20
> Rows), does some computation and saves it back in. But it needs to be
> ensured that in between reading and writing by that thread any other thread
> should not have saved any operation on that partition.
> We have thought of a solution for the same - *having a write_time column*
> in the schema and making it static. Every time the thread picks up a job
> read will be performed with LOCAL_QUORUM. While writing into Cassandra
> batch will contain a LWT (IF write_time is read time) otherwise read will
> be performed and computation will be done again and so on. This will ensure
> that while saving partition is in a state it was read from.
> In order to avoid race condition we need to ensure couple of things:
> 1. While saving data in a batch with a single partition (*Rows may be
> Updates, Deletes, Inserts)* are they Isolated per replica node. (Not
> necessarily on a cluster as a whole). Is there a possibility of client
> reading partial rows?
> 2. If we do a LOCAL_QUORUM read and LOCAL_QUORUM writes in this case could
> there a chance of inconsistency in this case (When LWT is being used in
> batches).
> 3. Is it possible to use multiple LWT in a single Batch? In general how
> does LWT performs with Batch and is Paxos acted on before batch execution?
> Can someone help us with this?
> Thanks & Regards,
> Bhuvan

Jens Rantil
Backend engineer
Tink AB

Phone: +46 708 84 18 32

Facebook <!/> Linkedin
 Twitter <>

View raw message