Idea for variation over tradspool
c928400 at student.dtu.dk
Thu Jun 21 08:42:08 UTC 2001
Not sure if this approach to improving tradspool has surfaced before.
> Currently the storage manager code works, although not perhaps as fast
> as it could. The expiration code is somewhat unwieldy; since the storage
> token does not have enough space to hold all the newsgroups an article
> is posted to, when expiration is done SMCancel() has to open the article
> to find out what other newsgroups the article is posted to. Eurggh.
> Suggestions for a better scheme are welcome.
Concidering that the article number is stored as an unsigned long, I
reckon that stealing a couple of bits to shift in extra information is
feasible. For information on whether an article is crossposted and/or
has an Expires: header, two bits are necessary.
For the stored article on disk, I decided to add an extension - an octal
number reflecting the bits stored in the token above. This way, by inspecting
the article name, it should be evident whether an article is crossposted or
have an Expires: header. This should generally reduce the number of times
actual opening of an article is required.
While coding, I split functions common to tradspool and tradext (traditional
spool with extensions/extended tradspool) from tradspool.c into trad.h
(residing in the tradspool directory), similar to the approach with timecaf.
If anyone is interested, where should I send the files? Since it is
>20K in a patch and two tarballs, I didn't feel comfortable just
>sending it to the list.
Btw, changes are against a inn-CURRENT-20010615, but there seem to be
no changes in any of the files as of inn-CURRENT-20010620?
I doubt one can mix tradspool and tradext in this current implementation.
"Before you criticize someone, walk
Preben "Peppe" Guldberg __/-\__ a mile in his shoes. That way, if
c928400 at student.dtu.dk (o o) he gets angry, he'll be a mile away
----------------------oOOo (_) oOOo-- - and barefoot." --Sarah Jackson
More information about the inn-workers