cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jérôme Verstrynge <jvers...@gmail.com>
Subject Re: What happens if there is a collision?
Date Thu, 21 Oct 2010 18:58:25 GMT
On 21/10/2010 20:03, Peter Schuller wrote:
>> My question is: is node E notified that it lost the battle against A? If yes
>> how?
>>
>> If not, then it means that, although writes are atomic, they would not be
>> deterministic. Node E would have to verify that its write was successful...
> Quorom is not really a special case in that sense; it just tells how
> many nodes must ack the operation. The conflict resolution of columns
> proceed as usual and data replicate as usual. Node E would do the same
> conflict resolution as other nodes whenever it sees the write,
> regardless of that was because it was in the original chosen quorom
> set, or it was given the right a bit later in the background, or it
> happened during anti-entropy etc.

OK. Thanks for your answer. From an email exchange I had with Jonathan, 
all this means that one should re-read its writes with quorum to make 
sure they have not been overriden by timestamp-tie conflicts. I 
suggested to send feedback to writting node (in the ACK) when such 
timestamps-tie conflict happen. This would avoid having to double-check 
all writes for timestamp-tie conflicts.

If multiple applications write to the same ColumnFamily/Tables, this 
double-check is a must (unless a separate locking mecanism is 
implemented, which would be more heavy).

Jérôme


Mime
View raw message