You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "C. Scott Andreas (JIRA)" <ji...@apache.org> on 2018/11/19 01:23:00 UTC
[jira] [Updated] (CASSANDRA-14593) Read-Repair breaks
partition-level update atomicity
[ https://issues.apache.org/jira/browse/CASSANDRA-14593?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
C. Scott Andreas updated CASSANDRA-14593:
-----------------------------------------
Component/s: Coordination
> Read-Repair breaks partition-level update atomicity
> ---------------------------------------------------
>
> Key: CASSANDRA-14593
> URL: https://issues.apache.org/jira/browse/CASSANDRA-14593
> Project: Cassandra
> Issue Type: Bug
> Components: Coordination
> Reporter: Benedict
> Priority: Major
>
> We advertise generally that updates apply atomically within a partition, and users depend on the fact that visibility is guaranteed to coincide, i.e. that two rows updated at once will only be seen together.
>
> However, a read that only touches one of these rows can lead to a quorum of nodes having only part of the update.
>
> For instance, let’s take either a write at CL.ONE, or a failed write at QUORUM, that updates two rows. The write makes it to only one node. A read is performed that only touches one of these rows, and happens to include the node that received the write so read-repair is engaged. Now, all nodes are updated to contain this row touched by the read-repair.
>
> A new QUORUM read is performed covering both rows, and the node that received the whole update is not queried. Now only the first row is returned.
>
> Any application depending on both rows being visible together, for any query that requests them, will now be in an indeterminate state.
>
> This seems like a fairly dangerous contractual failure, and one we should explicitly document, and we should permit disabling read-repair entirely for users who need it.
>
> Or, perhaps preferably, we could modify read-repair to perform a whole-partition repair, that is only triggered by the detection of inconsistency (rather than being directly driven by the requested data).
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org