rythm-sachdeva opened a new pull request, #2574:
URL: https://github.com/apache/iggy/pull/2574
## Description
This PR implements connection pooling for the `AsyncTcpConnection` in the
Java SDK, resolving issue #2232.
Previously, the async client used a single connection, which could lead to
bottlenecks. This implementation introduces a configurable pool (using Netty's
`FixedChannelPool`) to improve throughput and reliability.
## Key Changes
- Integrated Netty's `FixedChannelPool` into `AsyncTcpConnection`.
- Added `TCPConnectionPoolConfig` to allow configuration of:
- Max connections
- Max pending acquires
- Acquire timeout
- Implemented `PoolMetrics` to track:
- Active/Idle connections
- Wait times and errors
- Updated `sendAsync` to acquire channels from the pool and release them
back upon completion (or failure).
- Added logic to handle `CompletableFuture` cancellation and channel health
checks.
## Issue Link
Closes #2232
## Checklist
- [x] My code follows the code style of this project (Checkstyle passed).
- [ ] I have added tests to cover my changes. (Optional: Check if you added
tests)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]