Merge lp:~openerp-groupes/openobject-client-web/fix-delayed-ack into lp:openobject-client-web/trunk

Proposed by Julien Thewys
Status: Merged
Merged at revision: 4381
Proposed branch: lp:~openerp-groupes/openobject-client-web/fix-delayed-ack
Merge into: lp:openobject-client-web/trunk
Diff against target: 12 lines (+2/-0)
1 file modified
addons/openerp/utils/tiny_socket.py (+2/-0)
To merge this branch: bzr merge lp:~openerp-groupes/openobject-client-web/fix-delayed-ack
Reviewer Review Type Date Requested Status
OpenERP R&D Web Team Pending
Review via email: mp+46541@code.launchpad.net

Description of the change

Everything is in the commit message: we just need TCP_NODELAY between client and server.

Windows has 200ms ACK delay by default. If you deploy client and server on different Windows machines, clicking on administration menu (with extended view enabled) takes more than 10 seconds to complete (30+ RPC calls). Other operations are also terribly slowed down. With the patch this is simply reduced by 200ms times number of RPC calls.
Linux has apparently 40ms ACK delay by default, which is also not negligible. I suppose we never experienced the problem because we always deploy client and server on the same machine.
I also guess it is overkill to tune this further for the moment.

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'addons/openerp/utils/tiny_socket.py'
2--- addons/openerp/utils/tiny_socket.py 2011-01-17 11:57:11 +0000
3+++ addons/openerp/utils/tiny_socket.py 2011-01-17 22:17:53 +0000
4@@ -45,6 +45,8 @@
5 else:
6 self.sock = sock
7 self.sock.settimeout(SOCKET_TIMEOUT)
8+ # disables Nagle algorithm (avoids 200ms default delay on Windows)
9+ self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
10
11 def connect(self, host, port=False):
12 if not port: