[Dovecot] [Patch] Fix delay on imao-append

Bruno Prémont bruno.premont at restena.lu
Fri Jun 13 12:04:55 EEST 2008


Dovecot version: 1.1-rc8, 1.1-rc9
System: Linux-2.6.2x
User-Agent: claws-mail-3.3 and 3.4

When appending messages (e.g. copy from mailclient local folder or
second server to dovecot imap folder) dovecot answers with:
<tag> OK [APPENDUID <n> <m>] Append completed\r\n

This answer often reaches the client as two or more TCP packets, the
client (when not using TCP_NODELAY on its socket) ACKs with some delay.

When copying lots of (small) messages this delay has a very negative
impact on copy time even though there are lots of network and system
resources available.

Sample sniffer output on client host:
   ...
1  0.0000  claws    dovecot  IMAP  Request: 14639 APPEND "Test" (\Seen) {853}
2  0.0033  dovecot  claws    IMAP  Response: +OK
3  0.0034  claws    dovecot  IMAP  Request: <message>
4  0.0096  dovecot  claws    IMAP  Response: 14639
5  0.0467  claws    dovecot  TCP   33453 > imap [ACK]
6  0.0481  dovecot  claws    IMAP  Response:  OK [APPENDUID 1204729411 2] Append Completed.
7  0.0481  claws    dovecot  TCP   33453 > imap [ACK]
   ...

The delay of about 35ms between packet 4 and its ACK in packet 5 causes
copies from client to server to be extremely slow. (Client and server on
same 100Mb LAN, same result if client and server are on same host)

The attached patch makes dovecot send the whole answer in a single
packet, thus not triggering the delay issue.

As far as I found out the delay is generated by Naggle algorithm, this
algorithm being used by Linux TCP stack for small packets with the aim of
improving payload/overhead share.

Bruno Prémont
RESTENA Foundation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dovecot-1.1.rc8-cork-tagline.patch
Type: text/x-patch
Size: 656 bytes
Desc: not available
Url : http://dovecot.org/pipermail/dovecot/attachments/20080613/7cff2965/attachment.bin 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
Url : http://dovecot.org/pipermail/dovecot/attachments/20080613/7cff2965/attachment-0001.bin 


More information about the dovecot mailing list