sorry to be dense, but which is it? do i get the old version or the new version? or is it indeterminate?

On 02/02/2012 01:42, Peter Schuller wrote:
i have RF=3, my row/column lives on 3 nodes right?  if (for some reason, eg
a timed-out write at quorum) node 1 has a 'new' version of the row/column
(eg clock = 10), but node 2 and 3 have 'old' versions (clock = 5), when i
try to read my row/column at quorum, what do i get back?
You either get back the new version or the old version, depending on
whether node 1 was participated in the read. In your scenario, the
prevoius write at quorum failed (since it only made it to one node),
so this is not a violation of the contract.

Once node 2 and/or 3 return their response, read repair (if it is
active) will cause re-read and re-conciliation followed by a row
mutation being send to the nodes to correct the column.

do i get the clock 5 version because that is what the quorum agrees on, and
No; a quorum of node is waited for, and the newest column wins. This
accomplish the reads-see-write invariant.


Reply via email to