chiark / gitweb /
wip filepoll poll interval variable
[innduct.git] / doc / history
1 $Revision: 4165 $
2 This file contains a few messages of historical interest.  Some of the
3 information in these messages is out of date (e.g., you don't need any
4 other software, ihave/sendme is suported, etc); see the README and
5 installation manual.
6
7 The first is a mail message I sent as soon as I got the idea.
8
9 Six months later I had something to beta, and I posted the second message
10 to Usenet.  My ship date was optimistic.
11
12 The third message is the application that I required all beta sites to
13 fill out.
14
15 The fourth is a copy of the release notice.
16 \f
17 From: Rich Salz <rsalz@bbn.com>
18 Date: Sat, 8 Dec 90 15:23:20 EST
19 Message-Id: <9012082023.AA13441@litchi.bbn.com>
20 To: newsgurus@ucsd.edu, nntp-managers@ucbarpa.Berkeley.EDU
21 Subject: Speed idea.
22
23 Suppose inews, nntp, "rnews -U", newsunbatch, etc., all just fed their
24 articles to a single daemon?
25
26 An idea I started kicking around yesterday.  This is intended only for
27 sites supporting BSD networking.  I believe that anyone else who needs
28 this kind of speed would find Cnews good enough.
29
30 A multi-threaded server that used non-blocking IO to read all incoming
31 articles on several sockets (don't forker a server, select on the
32 connection socket will return READOK when a connection request comes in).
33 All articles are read into memory, then written out to the filesystem
34 using a single writev call (easy way to splice the path).
35
36 Hash the active file and compile the sys file so as soon as an article was
37 accepted we can write out the batchfile entries.  As one special case,
38 write entries to another socket for articles that should be fed out via
39 NNTPLINK or something.
40
41 Put the socket inside a group-access-only directory, so that only trusted
42 front-ends like inews "rnews -U" etc can connect to it.
43
44 Oh yeah, for things like nntp use sendmsg/recvmesg to hand off the
45 feeding site to the demon once it's authenticated the incoming call and
46 recognized it as an "xfer no" site.
47
48 I've a few pages of notes and code fragments to type in.
49
50 No locks of any kind.  active file is mmap'd or periodically flushed.
51 Keep it all in core and blat it out with a single write.
52
53 When you want to expire, or add a group, you send a special message
54 on a control port, or perhaps a sighup/sigusr1 to force it to resynch.
55
56 Any feedback?
57         /r$
58 \f
59 Path: papaya.bbn.com!rsalz
60 From: rsalz@bbn.com (Rich Salz)
61 Newsgroups: news.software.nntp,news.admin,comp.org.usenix
62 Subject: Seeking beta-testers for a new NNTP transfer system
63 Message-ID: <3632@litchi.bbn.com>
64 Date: 18 Jun 91 15:47:21 GMT
65 Followup-To: poster
66 Organization: Bolt, Beranek and Newman, Inc.
67 Lines: 72
68 Xref: papaya.bbn.com news.software.nntp:1550 news.admin:15565 comp.org.usenix:418
69
70 InterNetNews, or INN, is a news transport system.  The core part of the
71 package is a single long-running daemon that handles all incoming NNTP
72 connections.  It files the articles and arranges for them to be forwarded
73 to downstream sites.  Because it is long-running, it can be directed to
74 spawn other long-running processes, telling them exactly when an article
75 should be sent to a feed.  This can replace the "watch the logfile" mode
76 of nntplink, for example, with a much cleaner mechanism:  read the
77 batchfile on standard input.
78
79 InterNetNews assumes that memory is cheap and fast while disks are slow.
80 No temporary files are used while incoming articles are being received,
81 and once processed the entire article is written out using a single
82 writev(2) call (this includes updating the Path and Xref headers).  The
83 active file is kept in memory (a compile-time option can be set to use
84 mmap(2)), and the newsfeeds file is parsed once to build a complete matrix
85 of which sites receive which newsgroups.
86
87 InterNetNews uses many features of standard BSD sockets including
88 non-blocking I/O and Unix-domain stream and datagram sockets.  It is
89 highly doubtful that the official version will ever provide support for
90 TLI, DECNET, or other facilities.
91
92 INN is fast.  Not many hard numbers are available (that is one requirement
93 of being a beta-site), but some preliminary tests show it to be at least
94 twice as fast as the current standard NNTP/C News combination.  For
95 example, Jim Thompson at Sun has had 20 nntpxmits feeding into a 4/490,
96 and was getting over 14 articles per second, with the CPU 11% utilized.  I
97 was getting 10 articles/second feeding into a DECstations 3100, with the
98 program (running profiled!) 50% idle and the load average under .7.  (It
99 is a scary thing to see several articles filed with the same timestamp.)
100
101 The sys file format is somewhat different, and has been renamed.  The
102 arcane "foo.all" syntax is gone, replaced with a set of order-dependant
103 shell patterns.  For example, instead of "comp,comp.sys.sun,!comp.sys" you
104 would write "comp.*,!comp.sys.*,comp.sys.sun"; to not get any groups
105 related to binaries or pictures, you write "!*pictures*,!*binaries*".
106
107 There are other incompatibilities as well.  For example, ihave/sendme
108 control messages are not supported.  Also the philosophy is that that
109 invalid articles are dropped, rather than filed into "junk."  (A log
110 message is written with the reason, and also sent back to the upstream
111 feed as part of the NNTP reject reply.)  The active file is taken to be
112 the definitive list of groups that an article wants to recieve, and if
113 none of an article's newsgroups are mentioned in the active file, then the
114 article is invalid, logged, and dropped.
115
116 The history and log files are intended to be compatible with those created
117 by C News.  I want to thank Henry and Geoff for their kind permission to
118 use DBZ and SUBST.  You will need to be running C News expire or a B2.11
119 expire that has been modified to use DBZ.
120
121 The InterNetNews daemon does not implement all NNTP commands.  If sites
122 within your campus are going to post or read news via NNTP, you will need
123 the standard NNTP distribution.  The daemon will spawn the standard nntpd
124 if any site not mentioned in its "hosts.nntp" file connects to the TCP
125 port.  InterNetNews includes a replacement for the "mini-inews" that comes
126 with the standard NNTP distribution.  This can be used on any machine that
127 posts news and connects to an NNTP server somewhere; its use is not
128 limited to INN.  At some point I hope to have a replacement nntpd
129 optimized for newsreaders, and an NNTP transmission program.  These will
130 remove the need for any external software beyond the C News expire program.
131
132 If you would like to beta-test this version, please FTP the file
133 pub/usenet/INN.BETA from cronus.bbn.com for directions.  It will be a
134 fairly tightly-screened beta:  DO NOT ASK ME FOR COPIES!  Once the system
135 is stable, it will be freely redistributable.  I hope to have the official
136 release by August 7, so that schools can bring the system up before the
137 semester starts.
138         /rich $alz
139 -- 
140 Please send comp.sources.unix-related mail to rsalz@uunet.uu.net.
141 Use a domain-based address or give alternate paths, or you may lose out.
142 \f
143 Thanks for your interest in InterNetNews.  I want to run a fairly
144 tightly-controlled beta test of the software before I make it generally
145 available.  This means that I'm going to screen the sites which will be
146 able to participate in the test.  Please don't be offended or upset by
147 this whole procedure.  I want to make the final package as stable as soon
148 as possible so that the entire net can benefit (it will be freely
149 redistributable).  I've set up this mechanism because I think it's the
150 best way for me to get the best test results as quickly as possible.
151
152 I would therefore appreciate your answers to the following questions.
153 If you think the answers to some of them will be obvious to me (e.g.,
154 "Describe your organization" --> "UUNET" :-) then feel free to leave it
155 blank.  If you have any other feedback or comments, please add them.
156
157 Email your results to <rsalz@bbn.com>
158         /r$
159
160 What software (transport, batching, readers, etc.) do you currently run?
161
162 How much experience do you have with Usenet and NNTP?
163
164 Describe your organization.
165
166 How do you plan on testing InterNetNews?  Be specific, describing the
167 machine hardware, any test servers, etc.  [The answers to this one
168 won't be obvious to me -- you gotta write something.]
169
170 What are the rough counts of the upstream and downstream feeds, and how do
171 they break down by category (UUCP, NNTP, etc.)?
172
173 What special news functions does your server perform (gatewaying,
174 archiving, etc.)?
175
176 Do you understand that by participating in the beta-test you agree not to
177 redistribute the software outside of your administrative domain, and that
178 you promise to upgrade to the official release in a timely manner?
179 \f
180 From: Rich Salz <rsalz@uunet.uu.net>
181 Message-Id: <inn-announce@uunet.uu.net>
182 Newsgroups: news.software.b,news.protocols.nntp
183 Subject: Announcing the release of InterNetNews
184
185 I am pleased to announce the official release of InterNetNews.
186
187 InterNetNews, or INN, is a news transport system.  The core part of the
188 package is a single long-running daemon that handles all incoming NNTP
189 connections.  It files the articles and arranges for them to be forwarded
190 to downstream sites.  Because it is long-running, it can be directed to
191 spawn other long-running processes, telling them exactly when an article
192 should be sent to a feed.
193
194 INN is a complete Usenet system.  It provides article expiration and
195 archiving, NNTP transport, and UUCP support.  Nntplink works fine.
196
197 INN does not include a newsreader.  It does provide a version of the NNTP
198 reference implementation "clientlib" routines so that rrn and other
199 newsreaders compile with little trouble.  The next release of xrn will
200 include INN support.
201
202 The spool directory is unchanged while the history database is
203 upwardly-compatible with that of C News and the log file is very similar.
204 All system configuration files are different.
205
206 INN assumes that memory is cheap and fast while disks are slow.  No
207 temporary files are used while incoming articles are being received, and
208 once processed the entire article is written out using a single system
209 call (this includes updating the Path and Xref headers).  The active file
210 is kept in memory, and the newsfeeds file is parsed at start-up to build a
211 complete matrix of which sites receive which newsgroups.  A paper
212 describing the implementation was presented at the June 1992 Usenix
213 conference.
214
215 INN uses many features of standard BSD sockets including non-blocking
216 I/O.  It is highly doubtful that the official version will ever provide
217 support for TLI, DECNET, or other facilities.  Among others, INN beta
218 sites include ATT Unix System V Release 4, Apple A/UX, BSDI BSD/386 0.3.3,
219 DEC Ultrix 3.x and 4.x, HP-UX s800 8.0, IBM AIX 3.1 and 3.2, Next NeXT-OS
220 2.1, Pyramid OSx 5.1, SCO Xenix 2.3.4, SGI Irix 4.0, Sequent Dynix 3.0.4
221 and 3.0.12, and Sun SunOS 3.5 and 4.x.
222
223 Almost all of the beta-testers have reported faster performance and less
224 load once they installed INN.  Many people find it easy to maintain.
225
226 A number of sites have graciously agreed to provide FTP access to this
227 release.  The machine names and directories are listed below.  Within
228 those directories you will find one or more of the following files:
229         README                  Intro and unpacking instructions;
230          -or-                   a copy appears at the end of this
231         README.INN              article.
232         inn1.0.tar.Z            The full distribution
233         inn.usenix.ps.Z         The Usenix paper on INN
234
235 The sites providing access are:
236         cs.utexas.edu           /pub/inn
237         ftp.cs.widener.edu      /pub/inn.tar.Z (or wherever).
238         ftp.germany.eu.net      /pub/news/inn
239         ftp.ira.uka.de          pub/network/news
240         ftp.msen.com            /pub/packages/inn
241         ftp.uu.net              /pub/news/nntp/inn
242         gatekeeper.dec.com      /pub/news/inn
243         grasp1.univ-lyon1.fr    /pub/unix/news/inn
244         munnari.oz.au           /pub/news/inn
245         sparky.Sterling.COM     /news/inn
246         src.doc.ic.ac.uk        /computing/usenet/software/transport
247         stasys.sta.sub.org      /pub/src/inn
248             (Stasys also has anonymous UUCP; contact <fkk@sta.sub.org>.
249         ucsd.edu                /INN
250         usc.edu                 /pub/inn
251
252 Discussion about INN should be posted to news.software.b and
253 news.software.nntp.  Email should be sent to <rsalz@uunet.uu.net>.  Please
254 do NOT send it to <rsalz@osf.org> -- it will only just delay your response
255 since I will have to forward it to UUNET.
256
257 The README follows after the formfeed.
258         /r$