Bringing together the Apache Cassandra experts from the community and DataStax.

Want to learn? Have a question? Want to share your expertise? You are in the right place!

Not sure where to begin? Getting Started

 

question

376752150_179413 avatar image
376752150_179413 asked ·

What does full row-level isolation during write operations mean?

The doc says "This means that a write to a row within a single partition on a single node is only visible to the client performing the operation".

If there is another client2 perform operations on the same partition and on the same single node, is the write being performed by "THE CLIENT" as mentioned in the doc, also visible to this client2?

And, what does "visible to the client performing the operation" actually mean?

More concrete examples would be much appreciated!

cassandrawrite
10 |1000 characters needed characters left characters exceeded

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

1 Answer

Erick Ramirez avatar image
Erick Ramirez answered ·

@376752150_179413 That section of the document is talking specifically about full row-level isolation, i.e. the entire row in a partition being isolated while its contents are being updated. The updates to the row are not visible to other clients until the updates have completed.

For example, if you had table which had 2 columns being updated -- a column lastname and address. Full row isolation means that if a user is reading it (via a client), the user can only see either (a) the old version of BOTH columns, or (b) the new version of BOTH columns. It won't be possible for that user to see (c) the new version of lastname and the old version of address or (d) vice versa. The entire (full) version of the row is isolated while it is being updated. Cheers!

3 comments Share
10 |1000 characters needed characters left characters exceeded

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Thanks Erick for the clarification. Exactly the same as I thought.

1. The "row-level isolation" is just the literal meaning, it is not the sampe topic as the isolation in SQL ACID.

2. "visible to the client performing the operation" deosn't make sense.

Am I right?


0 Likes 0 · ·

@376752150_179413 Only the client/driver/app instance that is updating the columns of the row "knows" of the updates while the update is in progress as I explained in the second paragraph. Another client/driver/app instance that is reading the row can only see/read the old values until the updates to the row has completed successfully. Cheers!

0 Likes 0 · ·

P.S. @376752150_179413 I've converted your post to a comment since it's not an "answer". Cheers!

0 Likes 0 · ·