Details
-
Improvement
-
Resolution: Fixed
-
Critical
-
None
-
None
-
None
-
None
Description
It is expected that performance may be affected under extreme load, but it should degrade as gracefully as possible.
The current implementation of the DataFlowConnectionPool and ChannelConnectionPool use ThreadPool threads to do their parallelism.
When users of the SDK max out their own ThreadPool usage, the performance of the SDK drops, operations stall waiting to be executed, and this becomes a continuing situation until load drops to nothing and the queue clears. The connection pools may not be the only area where we are reliant on the ThreadPool. With async/await, we should be able to avoid the ThreadPool for the critical path.