Suppose Exim had 2 queues instead of one. We'll call the first queue the 
primary queue which is a ram drive and the secondary queue which is a 
disk drive. All this is of course optional and user settable.

Messages come into and are processed by the primary queue. The outgoing 
process picks up messages in the primary queue for delivery and makes an 
attempt. If the delivery is successful then the message is removed from 
the queue and is never written to disk.

However if the message fails its first delivery attempt then the message 
is put into the secondary queue for normal retry processing.

I know this isn't going to be simple but it might not be to complex. 
Exim would have to be expanded to run multiple queues rather than just 
one. Then you would have to add some logic to move messages between the 
queues should the first attempt fail. OR - send the message to a 
secondary "retry" server with a disk based queue for retry processing. 
You might also have some overflow logic should the ram drive fill up 
that it switches to disk based queueing or stops taking new connections 
on queue full.

I'm thinking these kinds of changes might not take too much 
restructuring to accomplish.




-- 
## List details at http://lists.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/

Reply via email to