-
Notifications
You must be signed in to change notification settings - Fork 10
perf(rules): use worker pool to perform Rule execution #1147
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
perf(rules): use worker pool to perform Rule execution #1147
Conversation
|
Build Error! No Linked Issue found. Please link an issue or mention it in the body using #<issue_id> |
d43ab16 to
7e319c2
Compare
|
Build Error! No Linked Issue found. Please link an issue or mention it in the body using #<issue_id> |
1 similar comment
|
Build Error! No Linked Issue found. Please link an issue or mention it in the body using #<issue_id> |
7e319c2 to
be0abe4
Compare
be0abe4 to
2cdd8f4
Compare
|
/build_test |
|
Workflow started at 11/28/2025, 10:29:47 AM. View Actions Run. |
|
No OpenAPI schema changes detected. |
|
No GraphQL schema changes detected. |
|
CI build and push: All tests pass ✅ |
Welcome to Cryostat! 👋
Before contributing, make sure you have:
mainbranch[chore, ci, docs, feat, fix, test]To recreate commits with GPG signature
git fetch upstream && git rebase --force --gpg-sign upstream/mainFixes: #1154
Description of the change:
Use single threaded "activator" executor in RuleService to handle startup job of activating Rules against Targets, and then to process dispatch of ActivationAttempt queue. Activator only takes elements from queue and then fires an actual execution job to be processed on a "worker" pool, which uses virtual threads, rather than directly handling processing itself.
Motivation for the change:
Allows concurrent/parallel activation of Rules against targets. Prior to this change Rule activation would only happen serially, so if there are many discovered targets and if connections to each target are a bit slow, then Rule overall activation could take significant time. Importantly, if a discovered target is not connectable at all and would produce a connection timeout, performing these activations concurrently on different virtual threads rather than serially on a single thread allows the possible activations to take place without needing to wait for the impossible activations to time out.
How to manually test:
./smoketest.bash -O -t quarkus-cryostat-agent,vertx-fib-demo