For what it's worth: Timo is the author of Dovecot.  His comments about
its implementation should be considered authoritative.  Mine are based
upon memory and second-hand/third-hand information.

What is important - and what I will/do comment upon - is whether or not
another server is compliant with the specification.  Dovecot is compliant.

I guess that the threaded semaphores stuff was in Communigate Pro.  Linda
comment about threading obviously confused me.

So, if I read you correctly, shared mbox access doesn't communicate flag
changes?  You don't use an external index file to avoid having to re-read
the entire file?  Do you allow shared expunge?

Did you ever test it over NFS and SMB (and NFS and SMB simultaneously)?
That's the kind of crap that I had to support when I did the code in UW
IMAP.  I hope that nobody has to support such nonsense ever again.

On Mon, 3 May 2010, Timo Sirainen wrote:
A bit too much misinformation here so I'll have to reply :)

On 3.5.2010, at 7.51, Mark Crispin wrote:

The main issue is if any other mail reading program is consuming the mbox.
If Dovecot is the only consumer you will be OK.  But if you have other
consumers (including Pine, Alpine, elm, /usr/ucb/mail, UW IMAP, etc.)
accessing the mbox while Dovecot is doing its thing there may be a
problem.

Dovecot allows non-Dovecot programs to access mbox files. As long as
they use compatible read/write locks, there aren't any corruption
problems. The only potential problem is that flag changes and such may
not be noticed immediately, but there are also settings to make Dovecot
read/write the mbox state more aggressively (so worse performance). But
the default behavior is actually pretty much the same as uw-imap's.

I wasn't aware of Dovecot supporting mix.  As far as I know, Dovecot only
supports maildir (its preferred format) and mbox.

There's a mix-inspired upcoming new mailbox format "mdbox" (or
multi-dbox, also dbox=single-dbox which uses compatible mail files, but
only single mail/file).

Maildir, in turn, does extra stuff to be NFS-safe at the cost of not being
at all ameniable for IMAP.  Dovecot actually implements a modified version
of maildir which is not NFS-safe...

Many people are using Dovecot with NFS, but you're right, it's not
entirely safe because I assumed I could flush NFS caches as necessary,
but that didn't turn out to work as well as I expected.

I think that you may have mistaken what Dovecot's multi-threading does.

There is no multi-threading in Dovecot! Multiple processes, sure, but
it's single-threaded everywhere. (But there is initial support for
handling multiple client connections in a single process (in a single
thread).)

The multi-threading allows multiple simutaneous read/write access to an
mbox format mailbox, as long as Dovecot is the only consumer of the mbox
file (and you don't want to violate that assumption).  It does this by
exchanging semaphores between the threads, which run in the same process;
otherwise there are no such semaphore with mbox format.

IPC is done only via filesystem.

-- Mark --

http://panda.com/mrc
Democracy is two wolves and a sheep deciding what to eat for lunch.
Liberty is a well-armed sheep contesting the vote.
_______________________________________________
Imap-uw mailing list
Imap-uw@u.washington.edu
http://mailman2.u.washington.edu/mailman/listinfo/imap-uw

Reply via email to