NNTPC: overview.fmt & Xref:full

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> > I don't understand, its Xref line should always be the same as the one
> > obtained from the remote server.
> 
> Which is one of several reasons some *intelligent* newsreaders have
> problems with nntpcache... It should *NOT* forward the original Xref line
> unchanged.

> There are several different ways of handling it correctly, I will try to
> enumerate some of them here (it's possible I have missed some, but I
> don't think so):
> 
> 1. 
> Change the hostname to it's own hostname.
> Remove all references to newsgroups it gets from a different server than
> the server it got this message from.

[...]

The xref issue is a difficult one. The reason it hasn't been
addressed is (a) for a typical configuration it is a non-issue and
(b) there is a performence hit in re-writing the xrefs.

Multiple servers chop up the group space according to group rules. i.e
there is a 1:1 correlation between particular groups and particular servers.

In the case where you are running local groups, or pulling in specialist
groups, it is rare to find crossposts between the two servers, because
the organisational and subject domains are typically very different.

However, there is a potential for collision with newsreaders that
don't examine the hostname in the Xref field, when a message is
cross-posted between two servers and the reader attempts to read
two or more of the groups involved in the cross-post and those
groups are delegated across at least two servers. Some newsreaders
*do* examine the hostname in the Xref field (e.g netscape3.0).
For those that don't, when a collision event occurs, the worst-case
outcome is that there is chance (only a chance, because it is likely
that the article number is either a long way in the past, refers
to a message already read, or is a long way into the future (although
the future will eventully become the present, for a moment at least
according to Descate') the newsreader will mistakingly think the
user has already read the article in that group, but not in the
other group's it may have been cross-posted to.

However far more XOVER lines pass into a nntpcache server than
individual articles. The overview.fmt's of most news-servers provide
clients with Xref: fields. This means a server grouplist scan and
re-write for every Xref in every XOVER line.  We already re-write
XOVER's themselves, in order to translate different overview.fmt's
from multiple servers. Fortunately, we can do the rewrite's *before*
xover information is cached, and rely on the cache to save our processing
bacon.

> I'm not exactly sure which of these strn/trn4 uses to list the newsgroups
> and an approximate number of articles, but this operation could easily
> take 3-5 seconds for a screenful of newsgroups, 40-50 or so... With the
> INN 1.5.1 server now in place this takes an almost unmeasurable
> time-period, we're talking about something like less than 0.1
> seconds in most cases! (OK, so page 5 sometimes take 0.1-0.2 sec, unknown
> why, but then that page sometimes took 5+ seconds with nntpcache)

On the nntpcache development servers (pentium-100 class machines), a
15,000 group list active takes around 5 seconds. If you have listSecurity
on, it will take longer due to authentication checks on every group.
At 5 seconds a page however, I can only guess that you have logToClient
debugging switched on on, or a truely sick machine.

It is possible to get this figure down from 5 seconds to around
1.5-2, using a secondary pre-formatted in-memory cache, at the
expensive of around 2Mb of memory and some code-complexity. I had
thoughts about this previously (as careful readers of nntpcache.config
will note), but until now no one has ever mentioned list active
speed as an issue, and until people do, I'm not about to introduce this
memory overhead.

> The current version is better, mostly due to Steinar Haug and Herbert
> Xu,

Both Steinar and Herbert have made some really nice contributions.
My hat is off to them and to all the many other contributors. It's
really nice feeling to have people taking the time understand and
appreciate your work. I only wish more people would distribute
source code freely so this could happen on a broader scale.

Cheers,
Julian.

--
Prof. Julian Assange  |If you want to build a ship, don't drum up people
		      |together to collect wood and don't assign them tasks
proff@suburbia.net    |and work, but rather teach them to long for the endless
proff@gnu.ai.mit.edu  |immensity of the sea. -- Antoine de Saint Exupery


[Index of Archives]     [Yosemite]     [Yosemite Campsites]     [Bugtraq]     [Linux]     [Trn]

Powered by Linux