[Mailman3-dev] Problem with the schema

J C Lawrence claw at kanga.nu
Wed Mar 30 06:12:49 CEST 2005

On Tue, 29 Mar 2005 22:33:14 -0500 
Barry Warsaw <barry at python.org> wrote:

> Think about Rosters.  In order to support composition of mailing
> lists, we let Rosters be shared.  So for example, it's quite easy in
> our current schema for List-A to have its membership in one Roster,
> List-B to have its membership in a second Roster, and List-C to be
> composed of Roster-A and Roster-B.

Yup.  Conclusion: Lists and Rosters are first class objects.

> But what happens if List-B gets deleted?  Do we delete Roster-B?  

No.  Rosters as first class objects have a set of expiry semantics which
are unique to themselves.  Those semantics may be the super-set of the
expiry semantics of the lists which reference them, or some other
arbitrary set (which may cause them to be expired before their dependent
lists expire).

> Do we leave it hanging around because List-C refers to it?  

You leave it hanging around until it, itself, decides to die.

> Also, can we know how many mailing lists are referring to a particular
> Roster?  

Yuo can handle that via a periodic mark-sweep pass as the number of
atoms involved is generally not large.

> Remember too that we can re-use Rosters as the list of owners or
> moderators.

Yup, that's why they have their own survival semantics.  Also consider
the case of a list which posesses multiple rosters, only some of which
are r/w.

> Similar issues arise through the re-use of LanguageTextCollections and
> MessageCollections.  

I'd treat MessageCollections as another first class object with discrete
semantics.  I don't know what LanguageTextCollections are yet.

> The question is whether it makes sense to "delete a mailing list"...

There are multiple levels of "deletion":

  - Doesn't accept or send mail any more

  - List is invisible to external view but still exists as a set of
  meta-data configurations.

  - Doesn't exist as a list configuration but still has archives and
  other meta-data

  - No trace remains.

  - etc.

As with all these things I'd suggest starting with determining what the
minimum necessary atoms are, what the necessary relationships among
atoms are, and then building from there.

J C Lawrence
---------(*)                Satan, oscillate my metallic sonatas.
claw at kanga.nu               He lived as a devil, eh?
http://www.kanga.nu/~claw/  Evil is a name of a foeman, as I live.

More information about the Mailman3-Dev mailing list