I'm just testing some large mailboxes for performance handling, etc and
noticed that checking for new mail seemed to pause for up to 5-10 seconds or
so before continuing. When looking at the mysql query logs, the following
seemed to be holding things up:

> SELECT messageblk FROM messageblks WHERE message_idnr = 323 ORDER BY
> messageblk_idnr

This was using IMAP, and message 323 was a 10Mb file. The code doing this I
believe is dbmsgbuf.c.  It seems to load the entire message into memory or
at least process it on the database before starting to send it to the user.

I'm running a P4 1.8G with 1Gb memory as the database server and the same
spec for the imap server; both with ata66 drives. All-in-all dbmail has been
performing OK, only curbed by the noticeable pausing.

Maybe this is unavoidable, in which case I'll just have to boost specs --
but maybe the message could be loaded into chunks from mysql (using a limit
X,100 and repeating the query every 100 blocks or so).

FYI.

/Mark

Reply via email to