On Mon, Feb 13, 2006 at 10:55:22AM +1100, Joshua Goodall wrote:
How does Dovecot generate the POP3 UIDL?
Using pop3_uidl_format. %v means UIDVALIDITY and %u means message UID. With maildir those are taken from dovecot-uidlist file.
More generically there is also the pop3_reuse_xuidl option which I've used extensively in migration scripts from legacy POP3 servers; the scripts actually fetch from the legacy store using POP3 UIDL and just insert the header when spewing it to the dovecot store.
see http://wiki.dovecot.org/Migration#head-99ef10c69108e731db56d7b83b51a9fdb1152...
the only side effect of using this feature is that you need to leave it turned on, even after users have POP'd into their mailbox because if you turn it off and are using an X-UIDL format such as the default, Dovecot knows that it can generate it on the fly and does so, even if the X-UIDL for a given message is present in the index.
the upshot of this is that every (new) message in a mailbox is read on each pop3 connection, looking for an X-UIDL header (that won't be there), resulting in higher disk IO than necessary.
I need to hack on the code to always use the X-UIDL from the index if present, then turn off pop3_reuse_xuidl and eliminate a bunch of disk IO.
grant.