-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Jul 20, 2007, at 9:31 AM, Stephen J. Turnbull wrote:
Barry Warsaw writes:
Second, things can happen to a list that might cause this sequence number to get corrupted.
Add an X-Mailman-Sequence-Number header if not already present.
That doesn't deal with your other comments, but as I point out elsewhere, if you don't use *any* Mailman-specific information in the global ID, you have no sane way to handle collisions except throw them away (or make the global ID refer to a collection resource, but that's kinda unintuitive).
I'd probably call it X-List-Sequence-Number and I'd have to ensure
that archive copy had that header in it. OTOH, if I'm going to go to
the trouble of adding this sequence number, why not just calculate a
(more likely) gid for the message myself? If I did that, I could use
a tinyurl scheme and get much shorter urls. The archiver would then
be obliged to use my X-List-GID header verbatim.
I've been pushing for calculating this using non-Mailman headers
because I'd /like/ for a client receiving the non-list copy to be
able to make the same calculation. OTOH, maybe we can have it both
So, we calculate the sequence number and generate the following headers:
X-List-Sequence-Number: 801 X-List-Message-GID: RXTJ357KFOTJP3NFJA6KMO65X7VQOHJI
The latter is composed of purely author generated data, the former is
supplied by Mailman.
Assuming we also had this header:
then the following url would point to the same exact resource:
If however we subsequently got a collision, then these two urls would
address different resources. E.g.:
X-List-Sequence-Number: 2112 X-List-Message-GID: RXTJ357KFOTJP3NFJA6KMO65X7VQOHJI
Now the two messages would still be addressable by their respective
would be a disambiguation page. For a web u/i it would be an HTML
list containing relative links to '801' and '2112'. A RESTful XML
document would contain the set of links to the subordinate pages. A
client of the archive.example.com service would have to be prepared
to handle disambiguation pages if it used only the author generated
GID, but it would be guaranteed that the full url would lead directly
to one and only one email message.
Archives would have to recognize the X-List-Sequence-Number and honor
it whenever it regenerated its archives so that the urls would remain
Thinking about this more (and I've been up since about 3:30am so I'm
a little foggy right now ;), we may want to optimize for fewer dupes
rather than fewer collisions, or maybe it doesn't matter. It would
be interesting to see how big the message-id buckets are when only
using the Message-ID header.