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

Support for ThreadPool SizeIO #1401

Open
bentoi opened this issue Dec 5, 2022 · 1 comment
Open

Support for ThreadPool SizeIO #1401

bentoi opened this issue Dec 5, 2022 · 1 comment
Milestone

Comments

@bentoi
Copy link
Member

bentoi commented Dec 5, 2022

Today, Ice doesn't support configuring the number of threads that perform IO over connections. It's configured to a fixed value which is the minimum value of the number of processor cores or ThreadPool.Size.

In cases where the network stack is fast and a reply or request has a very large payload, the non-blocking send on the socket can take some time and prevent other requests from being sent in parallel if all the thread pool IO threads are busy.

A design that relies on sending very large requests or responses should be avoided since the request or reply will consume lots of memory and might lead to such issues. Implementing a Slice defined streaming interface or a read method that allows to receive the data in multiple chunks is a better solution.

In any case, we could provide a property to configure the number of IO threads.

@bentoi
Copy link
Member Author

bentoi commented Dec 5, 2022

Here's an Ice.jar that provides support for a *.ThreadPool.SizeIO property.

Ice.jar.zip

@pepone pepone added this to the 3.7.9 milestone Feb 7, 2023
@externl externl modified the milestones: 3.7.9, 3.8.0 Mar 3, 2023
@bernardnormier bernardnormier modified the milestones: 3.8.0, Future Dec 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants