From: Simon Josefsson <jas@extundo.com>
Subject: Cache/Agent unification
Date: Sat, 04 Aug 2001 13:17:43 +0200 [thread overview]
Message-ID: <iluae1gjcq0.fsf@barbar.josefsson.org> (raw)
After reading some gnus-cache.el code I have some ideas, namely:
* Gnus Cache should cache all NOV headers. (Unless disabled.)
Right now it only cache NOV headers for cached articles. But
caching all NOV headers would increase speed when entering groups,
which I think would be nice. Header caching should only be enabled
(per default) for backends that doesn't have their own local NOV
files, i.e nntp. An interface should be added which lets gnus-cache
use the backends' NOV file if it has one, this would be used for
nnml, nnfolder, nnimap. (The nnimap NOV cache might be removed once
gnus-cache handles this though.)
Implementation detail: gnus-cache currently "braids" NOV lines.
This turned out to be too inefficient in nnimap, but you can take
the same approach nnimap did -- always maintain a contiguous NOV
file. So if you've cached NOV for article 50-100 and Gnus wants NOV
for article 1000 you fetch NOV for 101-1000 and saves that.
* Gnus Agent should use the NOV file from the cache/backend instead of
maintaining its own.
Enabling the agent thus enables NOV caching of gnus-cache. This
removes all the (duplicte) NOV stuff in gnus-agent. If someone see
a problem with this, please tell me.
* The Agent stores its articles in the cache.
I see one problem with this change. Currently, someone may have
their cache on a remote filesystem to preserve space in the client.
The separation between the cache and the agent makes this posssible.
I'm not sure how serious this objection is. Please comment. Also
please think of other things this might break.
* Articles should be inserted into the Agent (cache) when you read (or
prefetch) them.
Of course subject to any agent predicates.
* Articles should be retrieved from the cache if available by default.
Currently you need to frob `gnus-use-cache' to get this behaviour.
Summary/article commands which jog the cache should be available.
Some indication in the article modeline should be present to
indicate where the article comes from (cache or backend).
* Finally apply my old patches to make the Agent consider read
articles as well.
Currently the agent is hardcoded to never download read articles.
When you use Gnus Agent as a disconnected mail client, you kind of
expect everything in the group to be available (perhaps except very
long articles).
The scope of all these changes are, I think, to make the agent/cache a
integrated part of Gnus. It shouldn't require any configuration to
take advantage of the Agent. All backends should be "part" of the
agent/cache program per default. For remote backends, articles should
be saved per default (perhaps not? It requires lots of disk space).
next reply other threads:[~2001-08-04 11:17 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-08-04 11:17 Simon Josefsson [this message]
2001-08-04 12:00 ` Kai Großjohann
2001-08-04 12:30 ` Simon Josefsson
2001-08-04 13:24 ` Kai Großjohann
2001-08-06 17:51 ` ShengHuo ZHU
2001-08-06 19:08 ` Kai Großjohann
2001-08-17 11:27 ` Lars Magne Ingebrigtsen
2001-08-17 12:27 ` Simon Josefsson
2001-08-17 13:12 ` Lars Magne Ingebrigtsen
2001-08-17 13:23 ` Kai Großjohann
2001-08-17 13:34 ` Lars Magne Ingebrigtsen
2001-08-17 13:55 ` Simon Josefsson
2001-08-17 14:00 ` Lars Magne Ingebrigtsen
2001-08-06 20:49 ` Christoph Conrad
2001-08-08 11:35 ` Simon Josefsson
2001-08-10 17:21 ` ShengHuo ZHU
2001-08-08 15:59 ` Paul Jarc
2001-08-08 18:13 ` Kai Großjohann
2001-08-09 8:35 ` Simon Josefsson
2001-08-09 11:13 ` Kai Großjohann
2001-08-09 12:11 ` Simon Josefsson
2001-08-09 14:17 ` Paul Jarc
2001-08-10 14:54 ` Per Abrahamsen
2001-08-17 11:29 ` Lars Magne Ingebrigtsen
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=iluae1gjcq0.fsf@barbar.josefsson.org \
--to=jas@extundo.com \
/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).