[ 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