Hi, This might be off-topic, but you could always use Zookeeper locking and/or Apache Kafka topic keys for doing things like this.
Cheers, Jens On Tuesday, September 6, 2016, Bhuvan Rawal <bhu1ra...@gmail.com> 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 Email: jens.ran...@tink.se Phone: +46 708 84 18 32 Web: www.tink.se Facebook <https://www.facebook.com/#!/tink.se> Linkedin <http://www.linkedin.com/company/2735919?trk=vsrp_companies_res_photo&trkInfo=VSRPsearchId%3A1057023381369207406670%2CVSRPtargetId%3A2735919%2CVSRPcmpt%3Aprimary> Twitter <https://twitter.com/tink>