Skip to content
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

Second thread pool for I/O [release-v0.18] #8577

Merged
merged 1 commit into from
Sep 26, 2022

Conversation

SChernykh
Copy link
Contributor

@SChernykh SChernykh commented Sep 20, 2022

This is a copy of #8576 for the release-v0.18 branch

monerod currently uses a single thread pool for everything, including DNS requests. If it runs on a low-end CPU (less than 8 threads), DNS requests can block incoming transactions handling entirely. This change fixes it by never mixing compute and I/O tasks. I/O thread pool has a fixed size of 8 threads because monerod never does more than 7 parallel DNS requests as far as I can see in the code. Also, 8 I/O threads will process all DNS requests in parallel on low-end CPUs whereas they were processed consecutively before.

@SChernykh SChernykh changed the title Second thread pool for IO Second thread pool for I/O Sep 20, 2022
@SChernykh SChernykh changed the title Second thread pool for I/O Second thread pool for I/O [release] Sep 20, 2022
@SChernykh SChernykh changed the title Second thread pool for I/O [release] Second thread pool for I/O [release-v0.18] Sep 22, 2022
@luigi1111 luigi1111 merged commit fdb3185 into monero-project:release-v0.18 Sep 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants