[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