-
Notifications
You must be signed in to change notification settings - Fork 3
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
lmplement the cluster logic #30
Comments
This change is for improving the general usability: * Added yaml support to all API requests to improve user quality of life - storing labels in YAML is much easier than json, json interface is still supported * Added maintenance / shutdown API - to allow user to request graceful shutdown of the node, will be really useful in the loaded cluster #30 * Updated the dependencies - there was a number of updated deps which needed the updates * Cleaned up the logic a bit
Hmmm... Thought about the cluster sync and it looks like we should not sync everything but only the necessary things. Like everything except for Applications and Votes for example for each new connection. Currently the implementation syncs only when the node is starting up, which limits the node sync after connection broken. But if we will sync only the needed things every time when connection established - this way we will have free brainsplit restoration and not that complicated logic with the update time of the cluster... So need to think about that more... For sure will need to optimize the object storage (to not write the same objects again and again) and allow the logic to receive not existing objects from the cluster in runtime, but could worth a shot. Otherwise I don't see how to make the cluster in sync properly. |
Votes, actually, doesn't need to be stored forever - so I think we can easily remove them entirely from the DB (preventing bloat-up with not needed info) and store votes only during runtime for each NEW Application. This will need a major rewrite of the election process - which is actually good, because allow to move from pool-based to event based processing, that should improve the performance of Application processing significantly. |
The most important: * Added golangci to github workflow * Bumped version of go to 1.22 to fix for loops vars * Removed cluster logic since dead code and better one in #30 * Fixed unauthorized access to application resource * Fixed not checked user struct type conversion in API * Multiple security and style fixes
Co-authored-by: Jerry Wiltse <jerrywiltse@gmail.com> The most important changes: * Added golangci to github workflow * Bumped version of go to 1.22 to fix for loops vars * Removed cluster logic since dead code and better one in #30 * Fixed unauthorized access to application resource * Fixed not checked user struct type conversion in API * Multiple security and style fixes
After #1 we've lost DQlite-based cluster formation and left with a basic implementation of the websocket-based protocol. So need to complete it to allow cluster of the nodes to work as one - what could be easier?)
The text was updated successfully, but these errors were encountered: