Hi,

sometimes my server uses for some minutes much more memory than it
should - and I guess it's dbmail.

I hope I'll find some time soon to use a profiler, but meanwhile I guess
the following happens: someone marks a mailbox for offline use and
dbmail-imapd does the following:
- fetch all mails from database
- keep the result set in memory
- deliver them
The third step can take a while so the process eats lots of memory for
quite some time - no bug, its a design problem.
This only happens for some minutes, that's why I'm quite sure it's no
memory hole.

The way to go would be to use a server side cursor so only one mail has
to be kept in memory - but AFAIK there's a storage system with SQL
interface (sorry couldn't resist) that doesn't support cursors.

At the moment queries seem to be spread over dbmail. Is it hard to use a
more layered approach with a defined storage layer? A interface could be
something like 'sl_retrieve_message(user, mailbox, condition)' where
condition could be all/header=xyz/...

That way it would be much easier to use the power of the database
backend present instead of only using the minimum every database
supports.


Thomas
-- 
http://www.tmueller.com for pgp key (95702B3B)

Reply via email to