ietf-nntp Empty list on specific group / GROUP response

Russ Allbery rra at stanford.edu
Tue Apr 2 12:39:51 PST 2002


Joao Prado Maia <jpm at papercut.org> writes:

> Yes, that is a lot clearer. Now, what is the rationale for the high
> water mark being less than the low water mark ? Some compatibility issue
> with some NNTP server ?

No, it's not for compatibility reasons, although most servers do do this
and have for some time.  It's because it makes the most sense.  It's
actually the right way of expressing the information.

You don't want to lose information, so you still want to provide the
client with the current and correct low water mark so that it can
aggregate all read article data for all articles below the low water mark.
However, you don't want to promise articles that aren't there.

If the low water mark is 1000, and you return a high water mark of 1000,
you're promising that there's one article in the group (namely article
1000).  You can try to counter that promise by returning an estimated
count of 0, but that's both ugly and not reliable because the estimated
count is allowed to be wrong (admittedly it's only supposed to err on the
side of showing too *many* articles, but regardless the client is supposed
to use the high and low water marks when retreiving articles).

If instead you return a low water mark of 1000 and a high water mark of
999, you're expressing exactly the correct information.  There are not any
articles on the server numbered lower than 1000, and there are no articles
on the server numbered higher than 999, which mathematically leads to the
correct conclusion that there are no articles on the server.

It forces a special case in some places where the client handles article
numbers, but it maintains useful invarients for the high and low water
marks without losing information.

-- 
Russ Allbery (rra at stanford.edu)             <http://www.eyrie.org/~eagle/>



More information about the ietf-nntp mailing list