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
performance search rate: useless poll on network send callback #4316
Comments
Comment from firstyear (@Firstyear) at 2020-09-10 01:06:41 Are we in control of that poll function? Or is this something inside openldap write we need to change? |
Comment from firstyear (@Firstyear) at 2020-09-10 01:06:41 Metadata Update from @Firstyear:
|
Comment from spichugi (@droideck) at 2020-09-10 12:23:08 Metadata Update from @droideck:
|
Comment from spichugi (@droideck) at 2020-09-10 12:45:11 Metadata Update from @droideck:
|
Comment from mreynolds (@mreynolds389) at 2020-09-10 17:36:03 Metadata Update from @mreynolds389:
|
…llback Bug description: When sending back result/entries, DS first poll the connection to check it is able to write data on the socket. Then it writes the data. The purpose of the poll is to handle ioblocktimeout. The problem is that most of the time, the socket will process the write without any issue so it is useless to poll before the write. Fix description: The fix is try write first. It polls for ioblocktimeout only if the write fails relates: 389ds#4316 Reviewed by: William Brown (thanks!) Platforms tested: F31
…llback (#4424) Bug description: When sending back result/entries, DS first poll the connection to check it is able to write data on the socket. Then it writes the data. The purpose of the poll is to handle ioblocktimeout. The problem is that most of the time, the socket will process the write without any issue so it is useless to poll before the write. Fix description: The fix is try write first. It polls for ioblocktimeout only if the write fails relates: #4316 Reviewed by: William Brown (thanks!) Platforms tested: F31
…llback (#4424) Bug description: When sending back result/entries, DS first poll the connection to check it is able to write data on the socket. Then it writes the data. The purpose of the poll is to handle ioblocktimeout. The problem is that most of the time, the socket will process the write without any issue so it is useless to poll before the write. Fix description: The fix is try write first. It polls for ioblocktimeout only if the write fails relates: #4316 Reviewed by: William Brown (thanks!) Platforms tested: F31
…llback (#4424) Bug description: When sending back result/entries, DS first poll the connection to check it is able to write data on the socket. Then it writes the data. The purpose of the poll is to handle ioblocktimeout. The problem is that most of the time, the socket will process the write without any issue so it is useless to poll before the write. Fix description: The fix is try write first. It polls for ioblocktimeout only if the write fails relates: #4316 Reviewed by: William Brown (thanks!) Platforms tested: F31
Cloned from Pagure issue: https://pagure.io/389-ds-base/issue/51263
Issue Description
DS writes to the socket using a callback function (openldap_write_function). This function tests (poll) the ability to write before sending pdu. This is useless as there is already a loop that taking care of retry/partial write.
This adds an overhead of 'pool' syscall. It improves througput up to 5%.
Package Version and Platform
all versions
Steps to reproduce
perf trace -t -s ==> few poll
Actual results
almost same number of poll than sendto
Expected results
very low number of poll
The text was updated successfully, but these errors were encountered: