Gnus development mailing list
 help / color / mirror / Atom feed
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).



             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).