[Mailman-Users] optimizing mail delivery

J C Lawrence claw at cp.net
Wed Nov 17 21:41:17 CET 1999


On Wed, 17 Nov 1999 14:47:53 -0500 
Paul Tomblin <ptomblin at xcski.com> wrote:

> Quoting J C Lawrence (claw at cp.net):
>> Sendmail will not do this for you.  MailMan can be persuaded to...

> Wrong.  Sendmail *does* do this for you.  If you have a bunch of
> people on a list in random order, sendmail will work through the
> list in order, but every time it connects to a domain, it will
> send one message to *all* the members of the list at that domain.

Not quite true, but close.

> One of my most popular lists has at least 30% of its subscribers
> at panix.com, and another 10% at best.com.  When it was on
> majordomo, the entire list was passed off to sendmail in one
> chunk.  Since one of the panix.com people is first on the list,
> all the panixians got their mail first, then a few more people,
> then all the people at best.com, etc.  Now that I'm using mailman,
> and it's split into 5 chunks, I've noticed that one of the chunks
> is all panixians, which goes in one message to panix, and one of
> the chunks is almost all bestians, which also goes in one message.

The chunks you are describing are messages with some number (100 is
typical) of RCPT TOs tagetting them at a number of recipient
addresses.  Thusly your MTA can have a single message with a long
list of addresses to which it is to be delivered.  (cf VERP which
does the exact opposite)

I should be more specific:

  Given N messages in the mail spool where each message has
(pessimally) a single RCPT TO, and many of those messages are
targetted at the same domain:

  In that case, when Sendmail succeeds in delivering a single
message to domain X it will not then immediately attempt to deliver
the rest of the mesages targeted at domain X, either by the same
connection, or via other connections under other queue runners.
Instead it will deliver one, and then move on to the next message in
the queue and attempt to deliver that, ignoring the fact of what
domain it is targetted at.

Your case which you report above is that of a single message with a
large number of RCPT TOs to the same domain.  There is no wonder in
that message being delivered to the target MX in a single
transaction.  The sadness is that if you had had multiple such
messages, say for instance under MailMan you had 500 WorldNet users
subscribed and thus 5 such messages each with 100 RCTP TOs, or
worse, with the same subscriber base, but the RCPT TOs ordered willy
nilly across the messages, that those 5 (or more) would not have
been delivered in a single pass by a single queue runner, but would
instead have been processed in queue order one at a time, as the
queue runners encountered them..

Other MTA's do not share this weakness.  Exim for instance, no
matter how many messages were in the queue, and no matter what the
distribution of RCTP TOs across those messages, upon successfull
delivery of _one_ would then immediately attempt to deliver the rest
to the same MX.

-- 
J C Lawrence                              Internet: claw at kanga.nu
----------(*)                            Internet: coder at kanga.nu
...Honorary Member of Clan McFud -- Teamer's Avenging Monolith...




More information about the Mailman-Users mailing list