Hello, I have observed that the ScheduledExecutorService utilized for setting up deadlines and exiting idle mode is obtained by calling NettyClientTransport.getScheduledExecutorService, which returns an EventLoopGroup instance that was previously set in NettyChannelBuilder.eventLoopGroup().
Is there a specific rationale behind utilizing the same EventLoopGroup instance for executing IO tasks and as a ScheduledExecutorService? I have identified two disadvantages associated with this approach: 1. Developers relinquish control over EventLoop to subchannel assignment, potentially leading to multiple subchannels sharing the same EventLoop. 2. The deadline task may end up in the same slow EventLoop, which subsequently requires its cancellation. To tackle these issues, I propose the addition of a setter method for a custom ScheduledExecutorService within the NettyChannelBuilder. This enhancement would enable the separate scheduling of tasks while exclusively utilizing the EventLoopGroup for IO operations. Best regards, Dan -- You received this message because you are subscribed to the Google Groups "grpc.io" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/fa5280cd-dd69-4d8b-a6bd-9a8e4465256cn%40googlegroups.com.
