[Dovecot] Dovecot Sieve scalability
Jan van den Berg
jan.vandenberg at isp.solcon.nl
Fri Feb 22 10:55:06 EET 2008
Hi,
I just finished setting up a functional design with Dovecot+Sieve and it
works like a charm.
However I'm having serious doubts about the scalability of this. Here is
part of a discussion we're having here:
About Dovecot+Sieve.
What happens here is that your MTA is configured to pass _all_ email to
Dovecot which is configured as a LDA. In practice this means this in the
Exim config:
command = /usr/local/dovecot/libexec/dovecot/deliver
So you call on a single binary "deliver". This binary then looks for a
.dovecot.sieve file in the user maildir, _compiles_ it to
.dovecot.sievec file, and than drops the mail according to the rules.
Calling a single binary: that's isn't threaded, doesn't fork, and that
has to compile a file (everytime?) it's called isn't scalable. Multiply
this with 100 mails(calls) per second and this is bound for problems.
The Dovecot/Sieve implementation is functional but not very elegant or
robust. But this can be explained because Dovecot is build for
_retrieving_ mail (imap/pop) and _not_ delivering mail.
Any thoughts on this? Are there people out there with large
Dovecot+Sieve implementations (100k+ users). Are there benchmarks
available; how well does it perform under heavy load (mails/sec)?
Cheers,
Jan
More information about the dovecot
mailing list