Hi

I'm sorry - don't want to be a pain in the neck with source questions. So 
please just ignore me if this is stupid:

Isn't org.apache.cassandra.service.ReadResponseResolver suposed to throw a 
DigestMismatchException if it receives a digest wich does not match the digest 
of a read message?

If messages contains multiple digest responses it will drop all but one. So if 
any of the dropped digest are a mismatch to the version that mismatch is simply 
ignored.
It can cope with multiple reads (versions) but not with multiple digests and 
that's what it gets from quorum reads. 

It might be an edge case, but I think that would break quorum promise with rf > 
3 because you could have 1 broken data message, 1 broken digest message and 2 
good digest messages. If the 2 good messages were dropped than the quorum read 
that should have triggered repair and conflict resolution would return old data.

I just can't see what I'm not seeing here.

Cheers,
Daniel


Reply via email to