> The connection queue for Processors will be changed to ArrayBlockingQueue > with a fixed size of 20. Acceptor will use round-robin allocation to allocate > each new connection to the next available Processor to which the connection > can be added without blocking. If a Processor's queue is full, the next > Processor will be chosen. If the connection queue on all Processors are full, > Acceptor blocks until the connection can be added to the selected Processor. > No new connections will be accepted during this period. The amount of time > Acceptor is blocked can be monitored using the new AcceptorIdlePercent metric.
So if the queue of one Processor is full, what is the strategy to move to the next queue? Are we using offer with a timeout here? How else can we make sure that a single slow processor will not block the entire processing? I assume we do not allow us to get stuck during put as you mention that all queues full is a scenario. I think there is quite some uncertainty here. Is there any code one could check out? Best Jan