[jira] [Updated] (CASSANDRA-5667) Change timestamps used in CAS ballot proposals to be more resilient to clock skew

2018-05-11 Thread Jeremy Hanna (JIRA)

 [ 
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



[jira] [Updated] (CASSANDRA-5667) Change timestamps used in CAS ballot proposals to be more resilient to clock skew

2013-06-29 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-5667:
--

Attachment: (was: 5667.txt)

 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
  Components: Core
Affects Versions: 2.0 beta 1
 Environment: n/a
Reporter: Nick Puz
Assignee: Jonathan Ellis
Priority: Minor
 Fix For: 2.0 beta 1


 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 is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Updated] (CASSANDRA-5667) Change timestamps used in CAS ballot proposals to be more resilient to clock skew

2013-06-29 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-5667:
--

Attachment: 5667.txt

Patch attached to move contention retry into {{beginAndRepairPaxos}} and use 
max(current time from system clock, inProgress + 1) as the ballot.

Also updates in_progress_ballot on commit if necessary to preserve the 
guarantee that we won't issue a promise for any ballot less than we've seen 
before.

 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
  Components: Core
Affects Versions: 2.0 beta 1
 Environment: n/a
Reporter: Nick Puz
Assignee: Jonathan Ellis
Priority: Minor
 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 is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Updated] (CASSANDRA-5667) Change timestamps used in CAS ballot proposals to be more resilient to clock skew

2013-06-29 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-5667:
--

Attachment: 5667.txt

 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
  Components: Core
Affects Versions: 2.0 beta 1
 Environment: n/a
Reporter: Nick Puz
Assignee: Jonathan Ellis
Priority: Minor
 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 is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Updated] (CASSANDRA-5667) Change timestamps used in CAS ballot proposals to be more resilient to clock skew

2013-06-24 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-5667:
--

 Priority: Minor  (was: Major)
Affects Version/s: 2.0 beta 1
Fix Version/s: 2.0 beta 1
 Assignee: Jonathan Ellis
   Issue Type: Improvement  (was: Bug)

 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
  Components: Core
Affects Versions: 2.0 beta 1
 Environment: n/a
Reporter: Nick Puz
Assignee: Jonathan Ellis
Priority: Minor
 Fix For: 2.0 beta 1


 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 is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira