[ 
https://issues.apache.org/jira/browse/JAMES-3870?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benoit Tellier closed JAMES-3870.
---------------------------------
    Resolution: Fixed

> Each IMAP response line is a distinct TCP packet
> ------------------------------------------------
>
>                 Key: JAMES-3870
>                 URL: https://issues.apache.org/jira/browse/JAMES-3870
>             Project: James Server
>          Issue Type: Improvement
>          Components: IMAPServer
>            Reporter: Benoit Tellier
>            Priority: Major
>             Fix For: 3.8.0
>
>         Attachments: master-list-responses-with-flush.png, 
> pr-list-responses-without-flush.png
>
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Today each Imap response line is transmitted in a distinct TCP packet.
> This causes a lot of network overhead as 
>  => TCP headers are added for each response line. To give an idea a LIST 
> response line is 35 bytes long but result in a 101 bytes TCP frame so a 188% 
> overcost....
>  => TCP ack are conducted for each line independently. An ACK is 66 bytes,
> This is especially problematic for LIST, FETCH commands that actually result 
> in many (100, 1000, maybe millions) response lines.
> See attach screenshot: master-list-responses-with-flush.png demonstrating 
> this.
> We should try to limit the calls to "flush" with Netty, and force the flush 
> only once per IMAP command (at the end of processing). Netty is free to 
> transmit some data earlier if it's buffer states requires it. 
> The entire mailbox list take 1 packet to transmit (1420 btes total for 41 
> mailboxes so ~35 bytes per mailbox) and a single ACK (66 bytes).
> See attach screenshot: pr-list-responses-without-flush.png demonstrating this.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to