Great Circle Associates Majordomo-Users
(October 1996)
 

Indexed By Date: [Previous] [Next] Indexed By Thread: [Previous] [Next]

Subject: Re: improving delivery performance
From: Brian Behlendorf <brian @ hyperreal . com>
Date: Mon, 28 Oct 1996 23:00:44 -0800 (PST)
To: Jason L Tibbitts III <tibbs @ hpc . uh . edu>
Cc: majordomo-users @ GreatCircle . COM
In-reply-to: <ufak9sa1fon.fsf@sina.hpc.uh.edu>


I have yet to use TLB, but I have been splitting my lists into sublists
for delivery for years now.  It's always seemed to me that such a system
only shifts the load, so that it's equally painful in two dimensions
instead of extremely painful in one and not really painful in another, on
the presumption that the impact of pain in any one dimension is an
exponential function of the amount of pain. :)  

What has occurred to me is that what's needed is a small, multithreaded
program which basically does the following:

1) accepts a list of addresses to deliver a message to, and the message
2) gets DNS MX data, sorts into buckets based on mail relay
3) tosses all messages destined for local delivery to sendmail
4) starts a thread for each bucket, each attempting to deliver the
   message to the remote mail relay.
5) if a message is unsuccessfully delivered, puts it in the sendmail queue 
   directory, same format as sendmail's queue files.

In other words, this would be a multithreaded application dedicated solely
to attempting the first delivery of a message.  This would not be a mail
daemon, not a full delivery agent capable of handling a queue and expiring
messages after X days, no local delivery (thus avoiding setuid issues)
etc.  You may want to have a configurable delay between the launch of each
thread, say 1/2 a second, to prevent your bandwidth from going all at
once; you might also make this adaptable based on statistics from the TCP
interface, or something.

I'm probably going to be collecting social security before Berkeley
sendmail is multithreaded, so something like this would probably have a
good long shelf life.  I am of course too busy to implement this, but
there are a couple good x-platform threads packages one could start with.

	Brian


--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--
brian@hyperreal.com     http://www.apache.org     http://www.organic.com/jobs



Follow-Ups:
References:
Indexed By Date Previous: Re: improving delivery performance
From: Leslie Mikesell <les@Mcs.Net>
Next: Fwd: majordomo.cf problem...
From: majordomo_inVivo@invivo.remcomp.fr (majordomo inVivo)
Indexed By Thread Previous: Re: improving delivery performance
From: Leslie Mikesell <les@Mcs.Net>
Next: Re: improving delivery performance
From: Jason L Tibbitts III <tibbs@hpc.uh.edu>

Google
 
Search Internet Search www.greatcircle.com