Opened 10 months ago

Last modified 10 months ago

#2274 new enhancement

Replace NTCPFinisher ThreadPool with Disruptor

Reported by: zab Owned by:
Priority: minor Milestone: undecided
Component: router/transport Version: 0.9.34
Keywords: ntcp nio disruptor Cc:
Parent Tickets:

Description

Profiling with YourKit shows that 20% of the time the EventPumper thread is not sleep()-ing it is blocked on the LBQ of the ThreadPoolExecutor inside NTCPFinisher.

This is a perfect use case for a Disruptor ring because only one thread is putting items in that queue.

Subtickets (add)

Attachments (1)

ntcpfinisher.png (246.8 KB) - added by zab 10 months ago.
EventPumper? cpu usage (multiply by 10)

Download all attachments as: .zip

Change History (3)

Changed 10 months ago by zab

EventPumper? cpu usage (multiply by 10)

comment:1 Changed 10 months ago by zab

As expected migrating to Disruptor eliminates the time spent in the LBQ, and all that EventPumper does is either sleep() or do i/o, as is desired (this is with patch #2264)

comment:2 Changed 10 months ago by zzz

Related: #2271
see that ticket for general disruptor comments

Note: See TracTickets for help on using tickets.