[dovecot/core] 2dca65: lib: Created net_set_tcp_nodelay(), which enables ...

GitHub noreply at github.com
Fri Jun 17 10:00:12 UTC 2016


  Branch: refs/heads/master
  Home:   https://github.com/dovecot/core
  Commit: 2dca65ba6192532de99e668cd68ccf6015e77788
      https://github.com/dovecot/core/commit/2dca65ba6192532de99e668cd68ccf6015e77788
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-06-16 (Thu, 16 Jun 2016)

  Changed paths:
    M src/lib/net.c
    M src/lib/net.h

  Log Message:
  -----------
  lib: Created net_set_tcp_nodelay(), which enables the TCP_NODELAY socket option.

This disables the TCP Nagle algorithm.


  Commit: 44005db1cad775e5edf0ea0e88295fa69b5c400f
      https://github.com/dovecot/core/commit/44005db1cad775e5edf0ea0e88295fa69b5c400f
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-06-16 (Thu, 16 Jun 2016)

  Changed paths:
    M src/lib-http/http-client-connection.c
    M src/lib-http/http-server-connection.c

  Log Message:
  -----------
  lib-http: client/server: Enable the TCP_NODELAY option for all connections.

This disables the TCP Nagle algorithm. With the Nagle algorithm enabled, TCP waits a little to accumulate more data in a small segment before it is sent. For transfer of large continuous payloads, this is not useful and even harmful.
If the final remaining bit of the payload is small, the TCP layer will wait for a significant amount of time at the end of the payload. For many sequential transfers, this amounts to much waiting time.
This is particularly evident in the test-http-payload test suite tool. Setting TCP_NODELAY decreases its run time from up to 20 minutes to about half a minute my system.


Compare: https://github.com/dovecot/core/compare/095481fee840...44005db1cad7


More information about the dovecot-cvs mailing list