Issue1016

classification
Title: Support socket.TCP_NODELAY
Type: behaviour Severity: normal
Components: Library Versions: 2.2.2
Milestone:
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: amak Nosy List: amak, pjenvey
Priority: Keywords:

Created on 2008-03-28.05:52:48 by pjenvey, last changed 2008-06-01.22:39:18 by amak.

Messages
msg3109 (view) Author: Philip Jenvey (pjenvey) Date: 2008-03-28.05:52:46
Our socket module currently doesn't support the sockopt 
socket.TCP_NODELAY even though it could be mapped to 
java.net.Socket.setTcpNoDelay.

It's particularly important as it can aide in performance in some 
situations, e.g.:

http://www.cmlenz.net/archives/2008/03/python-httplib-performance-
problems
msg3110 (view) Author: Alan Kennedy (amak) Date: 2008-03-29.17:08:34
Actually, there are a few options that aren't supported at the moment,
including

 * Keep-alive
 * Linger
 * Out-of-band -> inline
 * Send and receive buffer sizes
 * Traffic class
 * TCP_NODELAY

On UDP sockets

 * Broadcast

All can have an important impacts on performance and behaviour. For
example, send and receive buffer sizes can be an important performance
consideration, as this paper about grid data transfer describes

Socket Buffer Auto-Sizing for High-Performance Data Transfers
http://www.cc.gatech.edu/~jain/publications/sobas_grid.pdf

Also, I see that TIPC support has been checked into the cpython trunk,
and will be present in 2.6.

Transparent InterProcess Communication
http://tipc.sourceforge.net/

http://mail.python.org/pipermail/python-dev/2007-December/075738.html
http://bugs.python.org/issue1646

I'll have a look at implementing TIPC, for use in jython 2.6, although
we could maybe put it into 2.5. Must raise this on jython-dev.

Although I see you've reported the bug against 2.5a1, I'd like to check
the fixes into release 22 branch; it would be a good way to get some
in-the-wild exposure for the new options, before 2.5 is released.
msg3212 (view) Author: Alan Kennedy (amak) Date: 2008-06-01.22:39:17
Fix checked in revision 4494 to support all socket options available on
java, including TCP_NODELAY, SO_BROADCAST, SO_LINGER, SO_KEEPALIVE,
SO_REUSEADDR, SO_OOBINLINE, etc.

Will update the wiki to reflect new options support.

http://wiki.python.org/jython/NewSocketModule
History
Date User Action Args
2008-06-01 22:39:18amaksetstatus: open -> closed
resolution: fixed
messages: + msg3212
versions: + 2.2.2, - 2.5alpha1
2008-03-29 17:08:35amaksetmessages: + msg3110
2008-03-29 13:08:15amaksetassignee: amak
nosy: + amak
2008-03-28 05:52:48pjenveycreate