Opened 3 years ago

Closed 3 years ago

#2253 closed enhancement (wontfix)

Use non-blocking io in SSU

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


Adding this on my TODO list to research.


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.


Change History (4)

comment:2 Changed 3 years ago by zzz

Milestone: undecided0.9.36

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

comment:3 Changed 3 years 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 3 years ago by Zlatin Balevsky

Resolution: wontfix
Status: newclosed

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

Note: See TracTickets for help on using tickets.