[Dovecot] transitional weirdnesses
Timo Sirainen
tss at iki.fi
Wed Aug 20 20:15:14 EEST 2003
On Wednesday, Aug 20, 2003, at 19:30 Europe/Helsinki, Mark E. Mallett
wrote:
>> It's also where I was going to put the Sieve scripting. I was going to
>> create a separate "deliver" binary which would read the mail from
>> stdin
>> and place it into proper mailbox. This could be also used to update
>> indexes immediately while mail is being delivered.
>
> How important do you think it is for the local delivery agent
> to update the indexes upon delivery? I assume that would be the
> primary purpose of your including a delivery agent in the package..
No, the primary purpose would be to have Sieve scripting.
The index updating then .. well, there's two reasons why it's useful at
that point:
First it reduces the overall server load. We have to read the mail into
memory and write it to disk in any case, so we might as well parse it's
contents and update indexes. If we do it later, we might have to fully
read the mail from disk just for some client request. Although I don't
know how smart the SMTP servers are with maildir - do they just link()
their temporary file into the new/ dir rather than copy it?
Second it distributes the load. If user hasn't opened some mailbox for
a long time (eg. spambox) and it contains thousands of messages, the
opening could take quite a long time if the wanted data isn't indexed.
> If it's important to update the indexes upon delivery, perhaps it
> would be worthwhile to provide some kind of toolkit that could be
> included into other delivery agents. I'm already using a sieve-ish
> filtering delivery agent, and I imagine I would keep on using it. But
> I wouldn't be averse to adding logic to update indexes if it meant
> some kind of performance gain.
There already is, kind of. lib-storage/mail-storage.h is the main API
that can be used to access mailboxes.
More information about the dovecot
mailing list