[ 
https://issues.apache.org/jira/browse/CASSANDRA-5667?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jeremy Hanna updated CASSANDRA-5667:
------------------------------------
    Labels: LWT  (was: )

> Change timestamps used in CAS ballot proposals to be more resilient to clock 
> skew
> ---------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-5667
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5667
>             Project: Cassandra
>          Issue Type: Improvement
>    Affects Versions: 2.0 beta 1
>         Environment: n/a
>            Reporter: Nick Puz
>            Assignee: Jonathan Ellis
>            Priority: Minor
>              Labels: LWT
>             Fix For: 2.0 beta 1
>
>         Attachments: 5667.txt
>
>
> The current time is used to generate the timeuuid used for CAS ballots 
> proposals with the logic that if a newer proposal exists then the current one 
> needs to complete that and re-propose. The problem is that if a machine has 
> clock skew and drifts into the future it will propose with a large timestamp 
> (which will get accepted) but then subsequent proposals with lower (but 
> correct) timestamps will not be able to proceed. This will prevent CAS write 
> operations and also reads at serializable consistency level. 
> The work around is to initially propose with current time (current behavior) 
> but if the proposal fails due to a larger existing one re-propose (after 
> completing the existing if necessary) with the max of (currentTime, 
> mostRecent+1, proposed+1).
> Since small drift is normal between different nodes in the same datacenter 
> this can happen even if NTP is working properly and a write hits one node and 
> a subsequent serialized read hits another. In the case of NTP config issues 
> (or OS bugs with time esp around DST) the unavailability window could be much 
> larger.  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to