I'll use this thread to talk out loud about MaildirQueue as I begin to implement it.
The first thing is that although I mentioned on the Wiki that this queue format would be Maildir++ compatible, upon further investigation[¹], it appears more substantially different from Maildir than I expected. Compatible, but still quite different. So I'm thinking that for now, I'll just implement a vanilla Maildir, and if demand for Maildir++ is there, I'll add that as a separate queue format. The other question - to lock or not to lock? It appears that in practice, Maildir has some issues[²] with lockless operation. Dovecot's Maildir[³] does locking while doing modifications to a Maildir or while looking for new messages in it. TMDA decides whether a message has already been confirmed or not by looking in the pending queue for it, and deletes messages once they have been confirmed, so an accurate picture of which files exist and don't in the Maildir is important. The question is whether we need to implement locking to insure this. For performance reasons, no locking would be preferable. Anyone have thoughts on this? Footnotes: [¹] http://www.inter7.com/courierimap/README.maildirquota.html [²] http://en.wikipedia.org/wiki/Maildir#Issues_with_lockless_operation [³] http://wiki.dovecot.org/MailboxFormat/Maildir _________________________________________________ tmda-workers mailing list ([email protected]) http://tmda.net/lists/listinfo/tmda-workers
