Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!seismo!lll-lcc!ames!ucbcad!ucbvax!cbatt!ukma!david
From: david@ukma.ms.uky.csnet (David Herron, NPR Lover)
Newsgroups: news.software.b
Subject: Is the history file really needed anymore?
Message-ID: <5504@ukma.ms.uky.csnet>
Date: Wed, 14-Jan-87 15:50:51 EST
Article-I.D.: ukma.5504
Posted: Wed Jan 14 15:50:51 1987
Date-Received: Thu, 15-Jan-87 21:57:42 EST
Sender: root@ukma.ms.uky.csnet
Organization: U of Kentucky, Mathematical Sciences, Lexington KY
Lines: 62

I got to thinking the other morning and decided we're close to not
needing to have the history file any more.

My idea was to have a master directory in which the file names are
the article-i.d. (minus the '<' and '>').  here are the pro's and
con's I considered at the time.

1) knowing which links point to this file.  (i.e. which newsgroup
   article number pairs are associated with this article).

   The Xrefs: header takes care of that right now ... the information
   is in approximately the same format as in the history file.

2) knowing when to cancel an article.

   Well, the ctime of the inode will be able to tell us a lot about
   when to do this ... the rest would come from opening the article
   and looking for the Expires: line.  The only new limitation would
   be knowing when there was an Expires: line present which specified
   a shorter-than-default time.  I wonder if anybody ever does this?

3) knowing when articles have been canceled.

   currently this is done by having an entry in the history file that
   says it has been canceled.  I've seen some *really*old* entries
   of that sort (I don't remember which news version) ... Anyway a
   similar thing could be done by just leaving a file in the master
   directory.

4) the Unix behaviour of being quadratic on directory searches.

   hmmm ... offhand I'd say that the only program which would directly
   use the master directory is expire and it should only be run once a day.
   Further, expire could be written to be intelligent about the way
   it runs through the directories.  (i.e. not a lot of random looking
   about in the directory, but linear search ... )

5) article id's are too long for non-flexname-in-the-file-system-people.

   I'm tempted to just say "aaawwwww" but that's not fair.  Something
   could be done like split it into a heirarchy of some sort...
   (which would help in point 4 as well).  I'm thinking of the way
   terminfo keeps its' terminal descriptions.

6) we'd be able to get away from dbm...

   it's a "yay" for xenix and sysv people ... they'd no longer be second
   class citizens.  we'd also be able to get away from the hackery in
   place to make sure the history file doesn't get corrupted by insertions
   happening during an expire (etc).

   [I did kind of like the comment in the 2.11 installation doc about
    how to get dbm if you don't have it already.]

Are there any other issues?  Like I said, it's just random thinking.


-- 
-----   David Herron,  cbosgd!ukma!david, david@UKMA.BITNET, david@ms.uky.csnet
-----           (also "postmaster", "news", "netnews", "uucp", "mmdf", and ...)
-----                                    (and the map maintainer for Kentucky.)
-----       "Don't put your money in South Africa -- Give it to me!" -- Cerebus