gnus: Article Caching
3.12 Article Caching
====================
If you have an _extremely_ slow NNTP connection, you may consider
turning article caching on. Each article will then be stored locally
under your home directory. As you may surmise, this could potentially
use _huge_ amounts of disk space, as well as eat up all your inodes so
fast it will make your head swim. In vodka.
Used carefully, though, it could be just an easier way to save
articles.
To turn caching on, set ‘gnus-use-cache’ to ‘t’. By default, all
articles ticked or marked as dormant will then be copied over to your
local cache (‘gnus-cache-directory’). Whether this cache is flat or
hierarchical is controlled by the ‘gnus-use-long-file-name’ variable, as
usual.
When re-selecting a ticked or dormant article, it will be fetched
from the cache instead of from the server. As articles in your cache
will never expire, this might serve as a method of saving articles while
still keeping them where they belong. Just mark all articles you want
to save as dormant, and don’t worry.
When an article is marked as read, is it removed from the cache.
The entering/removal of articles from the cache is controlled by the
‘gnus-cache-enter-articles’ and ‘gnus-cache-remove-articles’ variables.
Both are lists of symbols. The first is ‘(ticked dormant)’ by default,
meaning that ticked and dormant articles will be put in the cache. The
latter is ‘(read)’ by default, meaning that articles marked as read are
removed from the cache. Possibly symbols in these two lists are
‘ticked’, ‘dormant’, ‘unread’ and ‘read’.
So where does the massive article-fetching and storing come into the
picture? The ‘gnus-jog-cache’ command will go through all subscribed
newsgroups, request all unread articles, score them, and store them in
the cache. You should only ever, ever ever ever, use this command if 1)
your connection to the NNTP server is really, really, really slow and 2)
you have a really, really, really huge disk. Seriously. One way to cut
down on the number of articles downloaded is to score unwanted articles
down and have them marked as read. They will not then be downloaded by
this command.
It is likely that you do not want caching on all groups. For
instance, if your ‘nnml’ mail is located under your home directory, it
makes no sense to cache it somewhere else under your home directory.
Unless you feel that it’s neat to use twice as much space.
To limit the caching, you could set ‘gnus-cacheable-groups’ to a
regexp of groups to cache, ‘^nntp’ for instance, or set the
‘gnus-uncacheable-groups’ regexp to ‘^nnml’, for instance. Both
variables are ‘nil’ by default. If a group matches both variables, the
group is not cached.
The cache stores information on what articles it contains in its
active file (‘gnus-cache-active-file’). If this file (or any other
parts of the cache) becomes all messed up for some reason or other, Gnus
offers two functions that will try to set things right. ‘M-x
gnus-cache-generate-nov-databases’ will (re)build all the NOV files, and
‘gnus-cache-generate-active’ will (re)generate the active file.
‘gnus-cache-move-cache’ will move your whole ‘gnus-cache-directory’
to some other location. You get asked to where, isn’t that cool?