On 2020/06/16 10:39 AM, Wietse Venema wrote:
Viktor Dukhovni:
On Mon, Jun 15, 2020 at 08:25:31PM -0500, Noel Jones wrote:
Postfix has only one queue, and concurrency and process count is
per-destination, not based on where the mail came from.
Consider using a separate postfix instance for delivering mail list
messages to prevent them from interfering with regular mail. See
MULTI_INSTANCE_README
There's one active queue, but within that active queue messages are
queued to a particular (transport,nexthop) pair, and scheduling is
round-robin by transport, and then FIFO, subject to concurrency and
process limits and amortised pre?mption of multi-recipient messages by
messages with fewer recipients, so that messages with lots of recipients
don't hog the queue too long before some other messages with fewer
recipients that arrived later get to use a delivery slot.
If one just wants to put messages in multiple "lines" for delivery
scheduling, but otherwise all settings are the same, then using multiple
transports is simpler and often just as effective as multiple instances.
The more Postfix can do by itself, the better. That could be:
- Adding layer of sender-based round-robin selection. Not sure if
that would explode at large scale.
- Adding some artificial 'cost' value that is computed while delivery
requests are added to per-destination queues. Cost could depend on
the number of delivery requests per sender email address, the message
size, and so on. Then, the scheduler could choose what-to-deliver
based on artificial cost in addition to the things that it already
considers now.
Wietse
Obviously I am above my pay grade here,
but can this "Adding some artificial 'cost' value" currently be done? How?