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

Modify the transaction recovery processing to be handled by a separate reconcile loop #137

Open
ochaloup opened this issue Mar 2, 2020 · 1 comment

Comments

@ochaloup
Copy link
Contributor

ochaloup commented Mar 2, 2020

In the current implementation there is only one reconcile loop for all functionality of the WildFly Operator. This fact leads to a harder maintainability and a harder scalability of the processing.

The transaction recovery is a separate processing which should be handled without dependency to the main WildFly reconcile cycle. The WildFly recocile responsibility is to create Kubernetes' objects like ConfigMaps, Services, etc. But running (a long-running) recovery operation should be strip of the this loop and handled at the side.

The idea is to create a separate 'transaction recovery' CRD which would be maintained by the new operator reconcile handler. The instance of the customer resource would be created by the main reconcile loop when the WildFly finds out it's necessary to scale down and proceed with recovery.
Then the recovery reconcile may do operations which are needed and finish unfinished transactions.
When the log is clean then it would pass this information back to the main loop (maybe with an event or just changing a status a of the created transaction recovery CR). Now the main loop of WildFly reconciliation may scaled down the StatefulSet.

@ochaloup
Copy link
Contributor Author

This feature should fix #110

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

1 participant