-
Notifications
You must be signed in to change notification settings - Fork 21
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
fix(reports): split rule evaluations across executor submissions #336
Conversation
0f38223
to
a565e6e
Compare
a565e6e
to
400f257
Compare
To run smoketest:
|
/build_test |
Cryostat Test: At least one test failed ❌ |
/build_test |
Cryostat Test: At least one test failed ❌ |
Cryostat Test: All tests pass ✅ |
400f257
to
868f248
Compare
/build_test |
Cryostat Test: At least one test failed ❌ |
Image does not exist! Please wait for the initial build and push to complete before using |
062bd79
to
2f8c90c
Compare
2f8c90c
to
6a6aaf3
Compare
To run smoketest:
|
To run smoketest:
|
RuleEvaluator
causes the whole queue of futures to be evaluated by whoever callsevaluator.run()
- in this case, one thread from the Executor. If there are many threads available via that Executor then we don't take any advantage of the parallelism possible in analysis rules this way. With this PR thisRuleEvaluator
is removed and each rule in the queue to be processed is immediately submitted to the executor pool, then the final results are all collected by theqThread
and returned. This way a multithreaded executor provides more parallelism within individual rule analyses, rather than only helping to parallelize multiple analyses - ie parallelism within a single file analysis instead of only at the per-file level.