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 robert burrell donkin <ro...@gmail.com> on 2006/12/10 11:41:30 UTC

[IMAP] performance of commands on unselected mailboxes

(moving https://issues.apache.org/jira/browse/JAMES-720 on list)

i ran monitoring code most of last week and the same
getImapMailboxSession performance problem that effected the STATUS
command also effect many of the other commands which operated on
unselected mailboxes. the APPEND command has been running very slowly
(in the tens of seconds).

as requested, i updated to the lastest code and merged my local
changes. i'm glad to say that the recent improvements have made a very
noticable difference to APPEND. STATUS is still running with the local
change to lazy caching to allow me to collect data for comparison
against the new version on HEAD. (i'm now running with derby logging
off to improve performance.)

good work :-)

- robert

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


Re: [IMAP] performance of commands on unselected mailboxes

Posted by Joachim Draeger <jd...@joachim-draeger.de>.
Am Sonntag, den 10.12.2006, 10:41 +0000 schrieb robert burrell donkin:
> STATUS is still running with the local
> change to lazy caching to allow me to collect data for comparison
> against the new version on HEAD. (i'm now running with derby logging
> off to improve performance.)
> 
> good work :-)
> 
> - robert
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
> For additional commands, e-mail: server-dev-help@james.apache.org


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


Re: [IMAP] performance of commands on unselected mailboxes

Posted by robert burrell donkin <ro...@gmail.com>.
On 12/11/06, Joachim Draeger <jd...@joachim-draeger.de> wrote:
> Am Sonntag, den 10.12.2006, 10:41 +0000 schrieb robert burrell donkin:
>
> > i ran monitoring code most of last week and the same
> > getImapMailboxSession performance problem that effected the STATUS
> > command also effect many of the other commands which operated on
> > unselected mailboxes. the APPEND command has been running very slowly
> > (in the tens of seconds).
>
> Which many other commands do you have in mind? AFAIK there is only
> APPEND, COPY and STATUS that opens a mailbox session.

those three were the ones i had in mind

> > as requested, i updated to the lastest code and merged my local
> > changes. i'm glad to say that the recent improvements have made a very
> > noticable difference to APPEND. STATUS is still running with the local
> > change to lazy caching to allow me to collect data for comparison
> > against the new version on HEAD. (i'm now running with derby logging
> > off to improve performance.)
>
> Well, the lazy initialization of the cache should be done always. The
> objection I had was to modify the API for this case. Instead the init
> should be done before the first read/write.

+1

(the API modification was the easiest way for me to make comparative timings)

> The COPY command can be optimized implementation internally, because the
> destination is not forced to be inside a session.
>
> Maybe there is also a good solution for the APPEND. But before I would
> create a non-selected session, I would add an APPEND short-cut directly
> to the MailboxManager.

+1

(i came to similar conclusions after living with the local API change
for a while)

> Another thing I just noticed: Maybe we have to introduce a read-only
> session for the EXAMINE command. But at the moment I don't know a client
> that fails without, so it could be postponed.

evolution and apple mail don't seem to use EXAMINE at all

- robert

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


Re: [IMAP] performance of commands on unselected mailboxes

Posted by Joachim Draeger <jd...@joachim-draeger.de>.
Am Sonntag, den 10.12.2006, 10:41 +0000 schrieb robert burrell donkin:

> i ran monitoring code most of last week and the same
> getImapMailboxSession performance problem that effected the STATUS
> command also effect many of the other commands which operated on
> unselected mailboxes. the APPEND command has been running very slowly
> (in the tens of seconds).

Which many other commands do you have in mind? AFAIK there is only
APPEND, COPY and STATUS that opens a mailbox session.

> as requested, i updated to the lastest code and merged my local
> changes. i'm glad to say that the recent improvements have made a very
> noticable difference to APPEND. STATUS is still running with the local
> change to lazy caching to allow me to collect data for comparison
> against the new version on HEAD. (i'm now running with derby logging
> off to improve performance.)

Well, the lazy initialization of the cache should be done always. The
objection I had was to modify the API for this case. Instead the init
should be done before the first read/write.

The COPY command can be optimized implementation internally, because the
destination is not forced to be inside a session.

Maybe there is also a good solution for the APPEND. But before I would
create a non-selected session, I would add an APPEND short-cut directly
to the MailboxManager.

Another thing I just noticed: Maybe we have to introduce a read-only
session for the EXAMINE command. But at the moment I don't know a client
that fails without, so it could be postponed. 

Joachim

P.S.: Okay this time it was my fault: premature sent caused by thick
fingers. ;-)





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