Opened 7 months ago

Closed 7 months ago

#2253 closed enhancement (wontfix)

Use non-blocking io in SSU

Reported by: zab Owned by: zab
Priority: minor Milestone: 0.9.36
Component: router/transport Version: 0.9.34
Keywords: ssu nio Cc:
Parent Tickets:

Description

Adding this on my TODO list to research.

Hypothesis:

Profiling with YourKit shows the UDPReceiver thread spending a lot of time blocked in the socket receive call. Non-blocking io might be more performant in this case and may increase throughput.

Subtickets

Change History (4)

comment:2 Changed 7 months ago by zzz

  • Milestone changed from undecided to 0.9.36

to be looked at mid-July after NTCP2 is checked in

comment:3 Changed 7 months ago by zzz

We have dedicated threads for UDPSender and UDPReceiver. Of course the receiver thread is blocked in receive call, that's it's only job. The YourKit? profiling is not helpful here. So I don't see the point. I don't see how this could help. You have any test results?

The only possible benefit would be for IPv6 routers, where we could combine the two receiver threads for the multiple ports into a single selector and thread. But that would be a lot more work than the patch supplied, and any benefit would probably be modest, if any.

comment:4 Changed 7 months ago by zab

  • Resolution set to wontfix
  • Status changed from new to closed

This patch did not result in improvement in throughput, but it was useful in discovering #2271 .

Note: See TracTickets for help on using tickets.