You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by GitBox <gi...@apache.org> on 2022/12/28 09:13:16 UTC
[GitHub] [james-project] chibenwa opened a new pull request, #1364: JAMES-3870 Group IMAP response line within TCP packets
chibenwa opened a new pull request, #1364:
URL: https://github.com/apache/james-project/pull/1364
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.

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 bytes total for 41 mailboxes so ~35 bytes per mailbox) and a single ACK (66 bytes).

--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org
[GitHub] [james-project] chibenwa merged pull request #1364: JAMES-3870 Group IMAP response line within TCP packets
Posted by GitBox <gi...@apache.org>.
chibenwa merged PR #1364:
URL: https://github.com/apache/james-project/pull/1364
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org
[GitHub] [james-project] chibenwa commented on pull request #1364: JAMES-3870 Group IMAP response line within TCP packets
Posted by GitBox <gi...@apache.org>.
chibenwa commented on PR #1364:
URL: https://github.com/apache/james-project/pull/1364#issuecomment-1367216822
Performance tests:
- Gatling performances are equivalent
- Flame graph show a 100% performance enhancement of SSL wrapping and TCP socket flushing for IMAP. This result in a 2-3% CPU enhancement overall. Wrapping and sending the same payload is of course faster if performed on bigger TCP frames...
The performance impact hereby mesured is tiny, but consistent with the above exposed facts.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org