Question

I know that as of 0.8, Cassandra guarantees that row updates are atomic.

However, if I prepare (using MutationBatch) several row modifications or modifications across several column families, is it guaranteed that the rows will be updated in the order that in which I set them up? e.g. If I have

  • Update CF 1, Row 1
  • Update CF 1, Row 2
  • Update CF 2, Row 3

is it possible for CF 2 to be updated while CF 1 remains unchanged due to failure?

What happens if I had set up:

  • Update CF 1, Row 1, Column A
  • Update CF 1, Row 2
  • Update CF 2, Row 3
  • Update CF 1, Row 1, Column B

Alternatively, should I be preparing instead three MutationBatches and executing them separately?

Was it helpful?

Solution

All updates are done in parallel, so no ordering is ever guaranteed. Partial success will result in the batchlog taking over and finishing the batch starting in 1.2: http://www.datastax.com/dev/blog/atomic-batches-in-cassandra-1-2

OTHER TIPS

Playorm provides flush support which pushes all your persists down in one shot so it is sort of sends it as a unit of work(NOT a transaction)

http://buffalosw.com/wiki/flush-support/

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top