[ 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.
|