From jef@acme.com Fri Dec 20 07:17:38 EST 1996
Article: 27903 of news.software.nntp
Path: news.math.psu.edu!CTCnet!info.ucla.edu!nnrp.info.ucla.edu!csulb.edu!hammer.uoregon.edu!news.uoregon.edu!newsfeed.orst.edu!wsrcc.com!nntp1.best.com!shellx.best.com!not-for-mail
From: Jef Poskanzer <jef@acme.com>
Newsgroups: news.software.nntp
Subject: ANNOUNCE: multi-threading nnrpd, proxying and caching too
Date: 18 Dec 1996 22:12:16 -0800
Organization: Paratheo-Anametamystikhood Of Eris Esoteric
Lines: 34
Sender: jef@best.com
Distribution: inet
Message-ID: <59amc0$t4f@shellx.best.com>
Reply-To: Jef Poskanzer <jef@acme.com>
NNTP-Posting-Host: shellx.best.com
Xref: news.math.psu.edu news.software.nntp:27903

I've written a replacement nnrpd in Java.  It handles arbitrary
numbers of readers in a single process - that's very easy to
do in Java.  It does all database accesses through a rigorously
defined API.  The package includes three different implementations
of the API - a local file version, equivalent to current nnrpd;
a proxy version that talks to a remote nnrpd; and a multiplexing
version that dispatches different groups to different sub-databases.

Actually the local implementation isn't done yet, so it only runs in
proxy mode so far.  But that's ok, I think that's probably the way many
sites will want to run it anyway.  Currently, big sites typically have
one feeder machine running inn only, exchanging news with peers and
feeding to local reader machines.  On the readers you have inn again,
and lots of nnrpd processes, which use up all the memory and thrash
the machine to death.

With a multi-threading proxy, the feeder would run inn and a few
regular nnrpds.  The reader machines would run the multi-threading
nnrpd, accepting requests from user-agents and forwarding to the
regular nnrpds on the feeder machine.  Each reader machine would run
only one nnrpd, caching a few hundred MB of articles in memory, serving
hundreds of users.

http://www.acme.com/java/software/Package-Acme.Nnrpd.html
Your best bet for installing it is to fetch the full Acme.tar.Z kit and
unpack the whole thing.  Then set your CLASSPATH to that directory and
try running "java Acme.Nnrpd.Nnrpd -help".  You should get a usage
message.  If you try it out please let me know any results, I've mostly
done correctness testing so far, very little performance testing.
---
Jef

         Jef Poskanzer  jef@acme.com  http://www.acme.com/jef/
          "But that trick never works!" -- Rocket J. Squirrel


