Implement Zookeeper schema handler #129
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Currently any changes to Zookeeper schema is done ad-hoc and in code. This is hard to maintain and makes changing key paths, using prefixes, etc. impossible.
Implement several helpers for this:
Implement a schema handler, that can contain schema definitions of various classes. These could then be used by class instances.
Implement a schema migration system to allow upgrade and downgrade of schemas similar in conception to SQLAlchemy.
Implement conditional triggering of schema changes, such that a cluster can be upgraded seamlessly to a new version and then trigger application of changes afterwards. This may be tricky and might need to leverage a way to restart a daemon without transferring primary control so the daemon can clearly refresh, or a way to do this in-code.
This can likely just be a component of the updated
zkhandler
definitions indaemon-common
.mentioned in commit a78d4b273773a27c46de19c7951694453b4e3a86
mentioned in commit ff32a2a5a0e85a04735980e5fd9aad32bb30f5d9
mentioned in commit 36d424d212cdf7a8a1863b9128bb4965c41754d6
Initial implementation completed, and node daemon set to validate schema on startup.
Still deciding how to proceed with migrations, either to do so in Daemon or API. API seems more reasonable, since it can potentially be made to query nodes as to what schema version they run.
mentioned in commit cbd46ecf67e62db7fac4505cd05ee5d1644b153f
mentioned in commit 4899c1aae68ff4a561020c7b5a37e0e68cd28059
Decided instead to do it in the nodes, because that's where it makes the most sense. They can now keep track of their own active and latest versions, and when the last is upgraded, fire a full upgrade.
mentioned in commit
126f0742cd
mentioned in commit
602dd7b714
mentioned in commit
a4aaf89681
mentioned in commit
3c102b3769
mentioned in commit
5540bdc86b
Final implementation completed in PVC 0.9.20.
closed