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
Issue 5761 - Worker thread dynamic management #5796
Conversation
Creating the PR to be able to easily share the prototype. |
Performance tests shows that there are no performance regression during stress tests but no much improvement either |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The code looks very nice. Just few minor comments/questions
void | ||
op_thread_set_threads_number(int threadsnumber) | ||
{ | ||
int oldnbthreads = 0; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If op_thread_set_thread_number is called in parallel, should not serialize the call ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good catch. I should add a specific mutex to serialize this function
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is now fixed by latest commit
CONN_FOUND_WORK_TO_DO, | ||
CONN_SHUTDOWN, | ||
CONN_NOWORK, | ||
CONN_DONE, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it still needed ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, these values are still used by the worker thread (but anyway a merge with the turbo mode removal is needed)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was more specifically talking about CONN_DONE (IIRC)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
grep -c CONN_DONE connection.c
18
…t_threads_number function
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry for the delay. LGTM
This reverts commit c3a69bb.
This reverts commit c3a69bb about the Worker thread dynamic management feature because it caused a regression in freeipa CI tests due to a massive performance loss during a total update ( https://issues.redhat.com/browse/IDMDS-3781 ) Issue: #5761 Reviewed by: @tbordaz (Thanks!)
Objectives:
==> Increase the "searchrate" performance
Solution: See https://github.com/389ds/389ds.github.io/blob/main/docs/389ds/design/worker-threads.md
Issue: 5761
Reviewed by: @tbordaz (Thanks!)