On Tue, Sep 15, 2015, at 07:52, Andrew Morgan wrote: > Here is a summary of the commands the client issued: > > A0001 STARTTLS As I said above - be nice to avoid this for traffic to localhost. > A0002 CAPABILITY And by avoiding STARTTLS you also avoid the need for this roundtrip. Cyrus announces the CAPABILITY in the initial banner. > A0003 ID ("name" "Roundcube" "version" "1.1.2" "php" "5.3.3" "os" "Linux" "command" "/webmail/8d61c34e132a834f/?_task=mail&_action=preview&_uid=11&_mbox=INBOX&_framed=1&_caps=pdf%3D1%2Cflash%3D1%2Ctif%3D0") Bah, ID. This should be issued after authenticating IMHO. We no longer advertise the capability pre-auth at FastMail, because you're talking to nginx then, and it doesn't understand ID. > A0004 AUTHENTICATE PLAIN ****** [57] > A0005 GETMETADATA What, a raw GETMETADATA with no params? I guess that's one way to see if it's supported.... but the CAPABILITY command should have said that. > A0006 LIST "" This is basically the same as "NAMESPACE" with two params, but with one? That looks like a bug. . LIST "" . BAD Missing required argument to List: mailbox pattern (against a recently calibtrated reference Cyrus) So I'm assuming you took liberties copying and pasting? > A0007 MYRIGHTS Likewise, missing arguments > A0008 SELECT Configuration Should be quick unless it's a really big folder. > A0009 LSUB "" "*" Should be quick. > A0010 LIST "" "*" Might be expensive depending how many users you have on the server. We have plans of speeding this up with a reverse ACL index. > A0011 GETMETADATA Archive (/private/vendor/kolab/folder-type/shared/vendor/kolab/folder-type) Again, depends how many folders you have and what DB type. This is a keyed read on annotations.db, so should be O(log N). > A0012 MYRIGHTS Tasks > A0013 GETMETADATA Tasks (/private/vendor/kolab/displayname/shared/vendor/kolab/displayname) > A0014 GETMETADATA Tasks (/private/vendor/kolab/color/shared/vendor/kolab/color) > A0015 MYRIGHTS Contacts > A0016 MYRIGHTS "Contacts/Personal Contacts" > A0017 GETMETADATA Contacts (/private/vendor/kolab/displayname/shared/vendor/kolab/displayname) > A0018 GETMETADATA "Contacts/Personal Contacts" (/private/vendor/kolab/displayname/shared/vendor/kolab/displayname) > A0019 GETMETADATA Contacts (/private/vendor/kolab/uniqueid/shared/vendor/cmu/cyrus-imapd/uniqueid/shared/vendor/kolab/uniqueid) > A0020 GETMETADATA "Contacts/Personal Contacts" (/private/vendor/kolab/uniqueid/shared/vendor/cmu/cyrus-imapd/uniqueid/shared/vendor/kolab/uniqueid) And so on through all these. > A0021 SELECT Contacts > A0022 LOGOUT > > 1-2 seconds for all those commands is pretty damn fast. I don't know if > that generates much disk I/O, but there must be at least a few I/Os > required to do that. It's all going to come down to how much is already mapped into memory. It's going to be a bit of random IO. I'd still expect to see it faster than 1-2 seconds on a small account and semi-decent hardware though. Bron. -- Bron Gondwana brong@xxxxxxxxxxx ---- Cyrus Home Page: http://www.cyrusimap.org/ List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/ To Unsubscribe: https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus