You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by "Benoit Tellier (Jira)" <se...@james.apache.org> on 2021/05/04 09:22:00 UTC

[jira] [Created] (JAMES-3577) Tiny IMAP performance enhancements

Benoit Tellier created JAMES-3577:
-------------------------------------

             Summary: Tiny IMAP performance enhancements
                 Key: JAMES-3577
                 URL: https://issues.apache.org/jira/browse/JAMES-3577
             Project: James Server
          Issue Type: Improvement
          Components: IMAPServer
            Reporter: Benoit Tellier


Auditing IMAP load with glowroot I was surprised to see thousands of calls to the highest Message UID within a mailbox.

For instance out of 500 MOVE commands the highest UID was checked a thousand time...

A deeper look at the code shows that the latest UID is agressively read before a IF loop not requiring it all of the time... When no `*` are specified in the range definition we can entirely skip this read... Which seems quitte of a common pattern!

Impacted commands includes:

 - MOVE
 - COPY
 - STORE
 - EXPUNGE
 - FETCH

By not performing these reads I expect a minor performance increase...

 - Something like7% for MOVE for instance.

I will report other tiny enhancements I can find as comments of this ticket.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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