From: Brad Templeton (brad@templetons.com)
Date: Tue Nov 06 2001 - 14:00:25 CST
On Tue, Nov 06, 2001 at 10:40:30AM +0000, Charles Lindsey wrote:
> In <87k7x5s77u.fsf@erlenstar.demon.co.uk> Andrew Gierth <andrew@erlenstar.demon.co.uk> writes:
>
> >When you're running a system with 6 or so gigs of history files and a
> >million or so articles per day then you can come back and tell us that
> >implementation is not difficult. Until then, the fact that it can be
> >made to work on a trivial scale is irrelevent.
>
> I don't think implementation effort is linear in the size of the history
> file.
To wit, for the server, implementation is quite simple
There are two easy methods:
1) If when you cancel, you are able to rewrite the history entry of
the cancelled article, then simply do so to provide some pointer to the
replacement, or to an index into a smaller side-database (gdbm is fine)
of replacements.
2) If you can't alter old records, just add a new replacement record to
the database. When you fetch an article by message-id, and you notice
it is gone, check for the replacement record. You only do this when
you can't find an article, so it's not expensive.