Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add fixed delay in between DDL changes to accommodate node time drift #29

Open
sebbonnet opened this issue May 23, 2016 · 4 comments
Open

Comments

@sebbonnet
Copy link

Each DDL change should be separated by a fixed delay to ensure we cater for time drift between the nodes: delay >= max node time drift

When performing DDL changes, cassandra is always using the node timestamp when announcing alter table statements or other DDL changes regardless of whether a custom timestamp generator is provided when creating the session. As each DDL change can be executed on a different node, we need to wait long enough to ensure upgrades are timestamp ordered across all nodes.

@oliverlockwood
Copy link
Contributor

@sebbonnet It would be good to fix this issue, thanks for raising. Alongside adding this workaround in cqlmigrate, is there anything we can feed back into open-source Cassandra to suggest a fix on their side?

@sebbonnet
Copy link
Author

@oliverlockwood I've fed back the issue here https://issues.apache.org/jira/browse/CASSANDRA-11874, but I doubt it will get fixed given that

@oliverlockwood
Copy link
Contributor

@sebbonnet 👍

@emperorz
Copy link

emperorz commented Mar 22, 2017

Just a thought: you could choose a node (IP address) and whitelist it using the whitelist round-robin policy.

Should allow you to guarantee single node DDL application. See: https://datastax.github.io/python-driver/api/cassandra/policies.html#cassandra.policies.WhiteListRoundRobinPolicy

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants