Gnus development mailing list
 help / color / mirror / Atom feed
From: Tassilo Horn <tassilo@member.fsf.org>
To: ding@gnus.org
Subject: Re: Excessive nntp reads since today
Date: Tue, 12 Jun 2012 18:31:25 +0200	[thread overview]
Message-ID: <87aa08big2.fsf@thinkpad.tsdh.de> (raw)
In-Reply-To: <85pq94k37p.fsf@iznogoud.viz> (Wolfgang Jenkner's message of "Tue, 12 Jun 2012 16:35:38 +0200")

Wolfgang Jenkner <wjenkner@inode.at> writes:

>> It matches the behavior in that it had to fetch 2 additional messages
>> to fill in gaps in lose thread branches.
>
> The docstring states that it fetches all old headers (though only some
> subset of them is displayed).

You are right.  But speaking from experience it didn't do so, yet the
effect of connecting loose threads with old read articles somehow seemed
to work.

Ok, now I've edebugged the function as you suggested and checked what's
going on.  The difference between now and then is that now all headers
of a group are fetched once and put into the .overview (NOV) files.
Then they are cached and entering a group (even with 'some) is fast
again.

So basically, before uncached-articles was always the list of unread
articles, now it is (set-difference all-articles articles-in-overview).

      (if (setq uncached-articles (gnus-agent-uncached-articles articles group
                                                                t))
          (progn
            ;; Populate nntp-server-buffer with uncached headers
            (set-buffer nntp-server-buffer)
            (erase-buffer)

The reason that I get those excessive nntp reads (only once for each
group) is that my overview files didn't start with article 1, because
when subscribing to a new group, I restricted fetching by entering it
with, say, C-u 1000 RET and then catching up.

So to conclude:

  - Your patch is correct with respect to the docs

  - Your patch is bad, because now you can't use 'some for
    `gnus-fetch-old-headers' unless you have a super-fast internet
    connection.  (Several gmane groups have millions of messages which
    on first entering will all be downloaded.  No way to restrict that
    with a prefix arg as I always did.  Also, you end up with huge
    .overview files, which slow down Gnus' operations quite a bit.)

  - The old and buggy 'some semantics of `gnus-fetch-old-headers' were
    exactly what I want.  I.e., I want Gnus to *fetch* only new
    messages, but it should also *display* summary lines of old messages
    to fill loose threads in case those can be determined from the
    overview.

Now what?  Possibly `gnus-fetch-old-headers' should be split into two
variables to entangle fetching from displaying?  That'd be pretty bad
with respect to backwards compatibility...

Or how about allowing values like '(some . 100) meaning fetch at most
100 old headers and display old articles where needed to fill loose
threads?

Bye,
Tassilo



  parent reply	other threads:[~2012-06-12 16:31 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-12 12:11 Tassilo Horn
2012-06-12 13:11 ` Wolfgang Jenkner
2012-06-12 13:36   ` Tassilo Horn
2012-06-12 14:35     ` Wolfgang Jenkner
2012-06-12 15:56       ` Wolfgang Jenkner
2012-06-12 16:31       ` Tassilo Horn [this message]
2012-06-13 13:48         ` Wolfgang Jenkner
2012-06-13 15:18           ` Tassilo Horn
2012-06-13 16:36             ` Wolfgang Jenkner
2012-06-13 18:57               ` Tassilo Horn
2012-06-16 11:37                 ` Wolfgang Jenkner
2012-06-16 12:53                   ` Tassilo Horn
2012-06-16 14:18                     ` Wolfgang Jenkner
2012-09-05 13:56         ` Lars Ingebrigtsen
2012-09-05 14:38           ` Tassilo Horn
2012-09-05 16:19             ` Lars Ingebrigtsen
2012-09-05 17:16               ` Tassilo Horn
2012-09-05 17:34                 ` Wolfgang Jenkner
2012-09-05 17:36                   ` Tassilo Horn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87aa08big2.fsf@thinkpad.tsdh.de \
    --to=tassilo@member.fsf.org \
    --cc=ding@gnus.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).