[ 
https://issues.apache.org/jira/browse/CASSANDRA-580?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12784493#action_12784493
 ] 

Kelvin Kakugawa commented on CASSANDRA-580:
-------------------------------------------

Ah, I see what you were going after.  That's a more concise interface change.

My understanding about including a timestamp along w/ the logical clock is to 
limit the potential growth of the vector.  Basically, whenever a new node 
updates a value, the vector size grows by one.  However, the problem is that if 
many different nodes happen to update a given value (for various 
reasons--failure scenarios, etc.), the potential size of a vector could grow to 
an unmanageable length and it would keep that length forever.  So, the Dynamo 
authors chose to tag each update with a timestamp, so they could truncate the 
vector to only the last 10 nodes to update the value.  There is a possibility 
that an inconsistency could arise, because of the truncation.  However, the 
paper said in practice, it was a non-issue.

In summary, the timestamp is not there to help resolve consistency problems, 
it's there to make the vector more manageable.

> vector clock support
> --------------------
>
>                 Key: CASSANDRA-580
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-580
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>         Environment: N/A
>            Reporter: Kelvin Kakugawa
>            Assignee: Kelvin Kakugawa
>         Attachments: 580-interface-1-add-vector-clock.diff, 
> 580-interface-2-add-vector-clock.diff, 580-thrift-v3.patch
>
>   Original Estimate: 672h
>  Remaining Estimate: 672h
>
> Allow a ColumnFamily to be versioned via vector clocks, instead of long 
> timestamps.  Purpose: enable incr/decr; flexible conflict resolution.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to