-
Notifications
You must be signed in to change notification settings - Fork 7
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
Backend active/active cluster #482
Conversation
…ble used for backends exclusive locking; PipelineExecution now has backend_id parameter (=executing backend)
…ions (running executions are now failed, not restarted - configurable behavior, by default old behavior is preserved); Bug fixes; Adaptation of backend unit tests
… scheduler; Fixes in synchronization via DB table
…backends directly via RMI, but only checks timestamp in database
…vival Clear DPU selection after DPU was successfully removed.
…on, minor refactoring; Unit tests fixes
… turned on by configuration properties both for backend and frontend UV processes; By default, UV behaves exactly the same as before.
…tions in non-cluster mode
…pipelines that it can process; It does not allocate in advance preventing other backend from processing executions
Info about testing the cluster (in SK): testovane s 2000 QUEUED exekuciami naliatymi do systemu naraz |
Note: In case of cluster, shared directory should be used for DPU templates (JAR files), so that backends are automatically notified as any DPU template is changed. Otherwise, Maintenance of DPUs will be tougher - when certain DPU is imported/replaced via frontend, backends on other servers (using different directory than frontend) has to be updated manually - thus when new version of the DPU is prepared and loaded via UV admin interface, it has to be also manually deployed to backends. |
Note: Cluster of backends will not work properly in case of DPUs relying on various caches unless the directory with caches is a shared directory that all backends can access. |
Please unify the way how frontend checks whether backend is online. So even in case of single backend, RMI is not used for checking whether backend is online, but DB is checked instead. (as in cluster mode) Expected changes for frontend:
Expected changes for backend:
This update may be also solved in a separate pull request (if not doable before vacation) |
…ld be enough as backend should update its status timestamp each 2 seconds)
I tested single mode, which works fine. But when I tried cluster mode with mysql I got the following problem: In #509, there is a suggested solution. Please test whether the suggested solution works. If not and cannot be figured out quickly, we can solve that in a separate pull request. Otherwise approved. |
I fixed the issue with MySQL as suggested. Test description:
Test result
Everything should be OK now |
Backend active/active cluster
UV can now run with 2 (or N in theory) backend processes, which run simultaneously, so executions are processed by two nodes.