[news.admin] How news works at Apollo

rees@apollo.UUCP (02/21/87)

I've had a lot of people ask me recently how the news system is set up
here at Apollo.  I thought I'd describe it here, as it is kind of interesting.

Site 'apollo' is actually a distributed network of about 2000 workstations
spread across two states.  We have a user community of about 1800.  300
of them actively read news.  Running out of disk space is rarely a problem,
as we have about 200 Gbytes, of which maybe 30% is free.

We have one node dedicated to running uucp.  It has the phone lines on it.
Currently the uucp spool queues are also on this node, but at times they
have been elsewhere in the network.  The news spool directory is on another
node, the lib directory on another, and the news unbatching runs on yet
another node.  Forwarding between mail and news is done by another node.
The mail spool directory is distributed.

We don't use nntp.  The file system here is tranparently available everywhere,
so when I run rn on my node, it reads the files directly out of the news
spool directory, just as if they were on my local disk (I may not even have
a local disk).

I've modified the news software a bit to make it work better in a distributed
environment.  Most of these mods have to do with failing gracefully if the
spool directory becomes unavailable due to network problems, and extra locks
on files to prevent confusion.

The Apollo file system is object oriented and uid addressed.  If you look
at my message-id, you can see that I use an Apollo object uid.  This saves
having to muck with the seq file.  The part before the dot is the time stamp,
and the part after is the node ID.

We just converted to 2.11.  Updating software here is a pain.  All the news
programs have to be able to run on any node in the network, regardless of
what release of the OS that node is running.  There are multiple copies of
readnews and rn, but only one copy of inews/rnews.

I haven't had much luck running Brian Reid's arbitron script.  Aside from the
time it would take, it's almost impossible to get at everyone's newsrc file
at the same time.  There are 300 of them on 300 different nodes.  Some people
shut their nodes off when they aren't at work, and not every corner of the
net is available all the time.

It's certainly different from the vax 750 I used to run.

dclemans@mntgfx.UUCP (02/24/87)

We run a news system on an Apollo ring at Mentor Graphics that's similar
to what Jim describes (though smaller).  There are a couple of points
about rn and vn that might be of interest...

rn as distributed wants to periodically re-read the news active file
while rn is running, to tell the user about any new news that arrives
in the meantime.  It does that by leaving the file open, and periodically
seeking back to the beginning and re-reading.  However that locks the
news active file from being written, which makes it hard to post new local
articles and to receive new foreign articles.  I took an easy path out
and modified rn to copy the active file at invocation to a local
temporary file, and then to just read that file.

vn (both the 5/86 and the 12/86 versions) has a bug in that there is
a local subroutine that opens the active file for reading using a local
variable.  It then returns from the subroutine without closing the file,
thus leaving the active file read-locked.  This is fixed by adding
an "fclose" to that subroutine.

dgc