Avi Kivity created CASSANDRA-13550:
--------------------------------------

             Summary: Partition-level isolation of batch writes almost 
impossible to use
                 Key: CASSANDRA-13550
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-13550
             Project: Cassandra
          Issue Type: Bug
          Components: Documentation and Website
            Reporter: Avi Kivity


The documentation for the {{BATCH}} statement states:

bq. All updates in a @BATCH@ belonging to a given partition key are performed 
in isolation.

However, it is almost impossible to make use of this guarantee while reading:
 - if paging is enabled, then the server may insert a page boundary at any 
point; and there is no isolation among different pages of a single query
 - repairs can cause individual rows within a partition to be repaired, even if 
they belonged to a larger isolated update
 - in Cassandra 3 and above, reconciliation is incremental, again breaking 
isolation
 - if rows are overwritten, then even row-level isolation is not guaranteed 
(the old timestamp collision problem)

While it's possible to write an application that makes use of the existing 
isolation guarantees, it is very hard, and will likely impose constraints on 
the application (paging must be disabled and overwrites and row-level deletes 
never used).

The rules should be clarified here and relaxed; relaxation could allow a more 
efficient implementation (in Scylla we went full MVCC) and prevent users from 
relying on a guarantee that is not in fact provided.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to