> Basically: vector clocks tell you there was a conflict, but not how to > resolve it (that is, you simply don't have enough information to > resolve it even if you push that back to the client a la Dynamo). > What dynamo-like systems mostly VC for is the trivial case of "client > X updated field 1, client Y updated field 2, so I can resolve that > into a merged value containing both updates." But Cassandra already > handles that by splitting the row up into column-per-field, so VC > doesn't add anything for us.
Still, vector clocks are very useful in read-modify-update scenarios. In these scenarios cassandra requies external pessimistic locking servers, which makes cassandra almost unusable for these scenarios, because of introduced latency, especially when you have low concurrency for a single column, where optimistic locking is a perfect fit.