[Mailman-Developers] From the creation of a ThreadID

Toshio Kuratomi a.badger at gmail.com
Fri Apr 6 19:49:47 CEST 2012


On Fri, Apr 06, 2012 at 12:00:49AM -0700, David Jeske wrote:
> On Apr 5, 2012 6:42 AM, "Pierre-Yves Chibon" <pingou at pingoured.fr> wrote:
> > So I changed to use the Message-ID of the first email of the Thread as
> ThreadID.
> > Problem is of course, if the admin removes the first email of a thread
> > for x or y reasons, then when reloading the archives (for z or a
> > reasons), we will loose the ThreadID and actually, the integrity of the
> > Thread (each reply to the first email will be split into their own
> > thread).
> >
> > Would anyone have an idea on how to generate a stable and delete/reload
> proof ThreadID?
> 
> I believe "deletion proof" (i.e. stable thread-ids in the case of arbitrary
> deletions) may be provably not possible.
> 
> If you really want to be resiliant to arbitrary deletions/reloads, I think
> your solution is ultimately going to involve referencing more than one
> message in thread URLs..
> 
I don't see any way to make this 100% resilient against deletion + reload
(where reload == from the available messages without the benefit of the old
metadata) either.  I think with slight modification to your steps below, we
can get to resiliency against deletion or resiliency against total reload.

> For example, here is a scheme where 'messages in the thread name the
> thread':
> 
> 1) don't publish thread-ids, but just message-ids... for example, a thread
> URL could be allowed to reference the message-id of 'any' message in the
> thread.... They could then include more than one message-id, making them
> resiliant to a lost messageid later. if some messageid are lost, hopefully
> a url someone is holding onto has another messageid that was not lost.
> 
This sounds good.  So instead of relying on the first message-id of the thread
we internally keep a mapping of all message-ids and stableurl hashes to
either an internal message-id or a tree of messages in the thread.

When deleting messages, always retain the message-id and stableurl hashes
for that message in the mapping.  That way a url that pointed to the thread
by that message-id will continue to function even though the message itself
has been deleted.

-Toshio
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/mailman-developers/attachments/20120406/00abdf1a/attachment.pgp>


More information about the Mailman-Developers mailing list