[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