[Mailman-Developers] (no subject)
J C Lawrence
claw@kanga.nu
Mon, 11 Dec 2000 17:17:51 -0800
I'm working on a design proposal for Mailman v3 and have arrived at
a few questions:
1) Is there a GPL distributed queue processing system ala IBM's MQ
about? I've not been able to find one. The specific problem
I'm attempting to solve in a performant manner is:
How does a given delivery process on a given system obtain
access to a message it is qualified to deliver with a minimum
of lock contention or other overhead while preventing any
other process from attempting to also access the message it
has acquired from that point forward, but while also allowing
another process to recover that message should the original
process or host fail?
Note that the queue directory and the delivery process may be
on different systems (eg NFS) and that there may be multiple
competing queue delivery processes on any given system as well
as across multiple systems.
NB Needs to be GPL as Mailman is a GNU project.
2) How much interest is there in optionally supporting VERP? I've
no interest in making Mailman v3 VERP-only, but I'd like to see
it as an option, and specifically, an option which can be
turned on and off dynamically on a configurable percentage of
posts basis (eg N% of the messages exploded from an arbitrary
list post are VERPed). I've got the basics worked out
(assuming the local MTA supports plus+addressing), but some of
the smaller bits are fiddly.
3) The current design requires messages to have MessageIDs which
are unique within the range of MessageIDs currently within the
new Mailman queue system (I'm using MessageIDs as the tag oc
choice for moderation by email). To do this, I'm proposing
that Mailman do a couple new things:
1) Insert MessageID headers with created values in messages
that don't contain any MessageID.
2) Detect collisions within its rather small/arbitrary
window, and auto-discard/reject messages subsequent messages
with a duplicate MessageID. This would not a rigorous dupe
check, but would only check for dupes against the messages
already in the Mailman queue (ie received and not yet sent
back out).
Any problems in messing with MessageIDs in this way?
I'm not keen on MessageID re-writing, however its worth noting
that the above two rules would only come into effect when the
mail system has already broken down at some level (MUA emitting
non-unique or no IDs, mail dupes, etc).
4) While it seems a subtlesmall point, its bugging me. Given user
account support, and messages to a given user bouncing, should
that user be unsubscribed from only that list, or from all
lists at that site? Where this is actually bugging me most is
for virtual domains and whether or not lists in a virtual
domains should be transparent or opaque to a bounce on a list
in a different virtual domain?
The admin in me says, "Hell yes!" The commercial reality nut
in me demurrs (think about list hosting for small companies and
their PR image given transparent virtual hosting).
For those interested the basic model is built upon arbitrary process
queues and pipes. Also please remember I'm coming up with a
proposal, not a mandate (ie Barry etc haven't seen or commented on
this yet).
--
J C Lawrence claw@kanga.nu
---------(*) : http://www.kanga.nu/~claw/
--=| A man is as sane as he is dangerous to his environment |=--