Yes, both inserts (colD and colE) will succeed if you send insert() or batch_mutation()s from the client.

It's also correct to think of them as insert-or-update calls.

Aaron


On 21 Jul, 2010,at 07:58 AM, Alex Yiu <bigcontentflow@gmail.com> wrote:



Hi,

I have more questions on Cassandra ACID properties. 
Say, I have a row that has 3 columns already: colA, colB and colC

And, if two *concurrent* clients perform a different insert(...) into the same row,
one insert is for colD and the other insert is for colE. 
Then, Cassandra would guarantee both columns will be added to the same row.

Is that correct? 

That is, insert(...) of a column does NOT involving reading and rewriting other existing columns of the same row? 
That is, we do not face the following situation:
client X: read colA, colB and colC; then write: colA, colB, colC and colD
client Y: read colA, colB and colC; then write: colA, colB, colC and colE


BTW, it seems to me that insert() API as described in the wiki page: 
http://wiki.apache.org/cassandra/API
should handle updating an existing column as well by the replacing the existing column value.

If that is the case, I guess we should change the wording from "insert" to "insert or update" in the wiki doc
And, ideally, insert(...) API operation name would be adapted to update_or_insert(...)


Looking forward to replies that may confirm my understanding.
Thanks!


Regards,
Alex Yiu