mmodzelewski opened a new pull request, #4096: URL: https://github.com/apache/iggy/pull/4096
Every AsyncIggyTcpClient built its own event loop group with Netty's default of 2 x CPU threads. Its pool holds one channel, and a channel lives on one loop, so the other threads sat idle. Nothing let clients share a group. An application that opened one client per producer and consumer paid a thread count that grew with the client count. The group that a client creates for itself now has one thread by default, sized through ioThreads on the builder. eventLoopGroup registers the channel on a caller-owned group instead, and the client never shuts that group down. The builder rejects a group that cannot drive NIO channels or that already started to shut down, and ignores ioThreads when a group is supplied. The blocking builder forwards both options. The heartbeat ticks on the loop that owns the channel. A next() call per tick would rotate it across loops the channel never uses, and a next() call at construction would take a slot of the group's shared round-robin counter and push later channels onto the same loop. If a caller shuts a group down under a live connection, the heartbeat stops with a warning instead of dying in a swallowed exception. Refs #4021 -- 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]
