On Wed, Feb 23, 2011 at 9:28 PM, Ritesh Tijoriwala <tijoriwala.rit...@gmail.com> wrote: > I was about to ask what Anthony's latest post below captures - if we don't > have vector clocks and no locking, how does cassandra prevent/detect > conflicts? This is somewhat related to the question I asked in last post > - http://cassandra-user-incubator-apache-org.3065146.n2.nabble.com/How-does-Cassandra-handle-failure-during-synchronous-writes-td6055152.html > Thanks, > Ritesh > > > > On Wed, Feb 23, 2011 at 6:22 PM, Anthony John <chirayit...@gmail.com> wrote: >> >> Apologies : For some reason my response on the original mail keeps >> bouncing back, thus this new one! >> >> > From the other hand, the same article says: >> > "For conditional writes to work, the condition must be evaluated at all >> > update >> > sites before the write can be allowed to succeed." >> > >> > This means, that when doing such an update CL=ALL must be used >> >> Sorry, but I am confused by that entire thread! >> Questions:- >> 1. Does Cassandra implement any kind of data locking - at any granularity >> whether it be row/colF/Col ? >> 2. If the answer to 1 above is NO! - how does CL ALL prevent conflicts. >> Concurrent updates on exactly the same piece of data on different nodes can >> still mess each other up, right ? >> -JA >
Cassandra does not provide any build in locking. It can not protect from "lost updates" caused by multiple independent entities reading and writing the same data. The cages library handles locking externally and is really easy to use. http://ria101.wordpress.com/2010/05/12/locking-and-transactions-over-cassandra-using-cages/