http://dovecot.org/releases/1.1/alpha/dovecot-1.1.alpha4.tar.gz http://dovecot.org/releases/1.1/alpha/dovecot-1.1.alpha4.tar.gz.sig
Lots of fixes since alpha3. Also includes the dbox rewrite. Currently dbox works properly only in one-message-per-file mode. I'm not actually even sure how good idea it would be to use it with multiple-messages-per-file mode. But I guess it won't hurt to finish its implementation and see. :)
As you can see I haven't been replying much to the mailing list lately. My school started again, which meant that I had to start sleeping again at night instead of at day :) Doing that always takes a few weeks of feeling too tired to get much of anything done. Hopefully that goes away soon.
A bit more about dbox:
Originally I had thought that it'd be good to have multiple messages per file. The bad thing about that is that it works badly without fcntl locks, which don't work all that great with NFS. So I changed my plans a bit so that dbox also supports one-message-per-file behavior where it doesn't need locking much. (Multiple-messages-per-file is still supported by the format, but currently the code is not fully working.)
dbox files begin with a header, then they have the message data and at the end of file there's a metadata block. Metadata contains things like message flags, keywords, received date and so on.
When a flag/keyword is updated, the change is normally done only to index files. This is why dovecot.index and dovecot.index.log files are important with dbox format, they contain flag changes that haven't been written anywhere else.
But since there's still a chance that index files could break (although v1.1 tries harder than v1.0 to fix problems), it would be nice if the flags/keywords were written to metadata block once in a while. So if the index files are lost, flag changes wouldn't be completely lost. Metadata updates of course use disk I/O so they shouldn't be done too often.
I was thinking that the metadata could be updated:
- if IMAP connection has been idling for 4 hours (not changing flags)
- when closing mailbox and there are changes older than 4h
- immediately if there are changes older than 24h (whenever mailbox is being synced, e.g. SELECT/NOOP/STATUS)
Or something like that. Those rules can of course be changed, but I'm not sure if I should bother making them configurable from dovecot.conf. There are already too many settings.