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 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 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