Kassandra’s atomicity and “kickback”

The Cassandra 2.0 documentation contains the following paragraph on Atomicity:

For example, if you use a record consistency level of QUORUM with a replication ratio of 3, Cassandra will replicate the record to all nodes in the cluster and wait for confirmation from two nodes. If the record failed on one of the nodes, but succeeds on the other, Cassandra reports that the record cannot be replicated to the node. However, a replicated record that succeeds on another node does not roll back automatically.

So, write requests are sent to 3 nodes, and we expect 2 ACKs. Suppose we get only 1 ACK (before timeout). Therefore, it is clear that if we read with ONE consistency, then we can read the value, ok.

But which of the following statements is also true:

  • It may happen that the record is saved on the second node, but the ACK node is lost? (Note: this may lead to reading the value even with consistent reading of QUORUM!)
  • Could it be that the record will be saved later on the second node (for example, due to an intended handover)? (Note: this may lead to reading the value even with consistent reading of QUORUM!)
  • Is it impossible for the record to be saved on the second node, and the recorded value will eventually be deleted from the node via ReadRepair?
  • It is impossible for the record to be saved on the second node, but it is necessary to perform a manual "cancel" action?
+4
1

, . , . node .

, Cassandra , , , . . , node (replica) .

. http://www.datastax.com/dev/blog/how-cassandra-deals-with-replica-failure

0

Source: https://habr.com/ru/post/1546710/


All Articles