.el .ne 3
.IP "\\$1" \\$2
..
-.TH "HTCACHECLEAN" 8 "2010-10-04" "Apache HTTP Server" "htcacheclean"
+.TH "HTCACHECLEAN" 8 "2010-10-13" "Apache HTTP Server" "htcacheclean"
.SH NAME
htcacheclean \- Clean up the disk cache
.SH "SYNOPSIS"
.PP
-\fBhtcacheclean\fR [ -\fBD\fR ] [ -\fBv\fR ] [ -\fBt\fR ] [ -\fBr\fR ] [ -\fBn\fR ] [ -\fBR\fR\fIround\fR ] -\fBp\fR\fIpath\fR -\fBl\fR\fIlimit\fR
+\fBhtcacheclean\fR [ -\fBD\fR ] [ -\fBv\fR ] [ -\fBt\fR ] [ -\fBr\fR ] [ -\fBn\fR ] [ -\fBR\fR\fIround\fR ] -\fBp\fR\fIpath\fR [-\fBl\fR\fIlimit\fR| -\fBL\fR\fIlimit\fR]
.PP
-\fBhtcacheclean\fR [ -\fBn\fR ] [ -\fBt\fR ] [ -\fBi\fR ] [ -\fBP\fR\fIpidfile\fR ] [ -\fBR\fR\fIround\fR ] -\fBd\fR\fIinterval\fR -\fBp\fR\fIpath\fR -\fBl\fR\fIlimit\fR
+\fBhtcacheclean\fR [ -\fBn\fR ] [ -\fBt\fR ] [ -\fBi\fR ] [ -\fBP\fR\fIpidfile\fR ] [ -\fBR\fR\fIround\fR ] -\fBd\fR\fIinterval\fR -\fBp\fR\fIpath\fR [-\fBl\fR\fIlimit\fR| -\fBL\fR\fIlimit\fR]
.PP
\fBhtcacheclean\fR [ -\fBv\fR ] [ -\fBR\fR\fIround\fR ] -\fBp\fR\fIpath\fR [ -\fBa\fR ] [ -\fBA\fR ]
.SH "SUMMARY"
.PP
-htcacheclean is used to keep the size of mod_disk_cache's storage within a certain limit\&. This tool can run either manually or in daemon mode\&. When running in daemon mode, it sleeps in the background and checks the cache directory at regular intervals for cached content to be removed\&. You can stop the daemon cleanly by sending it a TERM or INT signal\&. When run manually, a once off check of the cache directory is made for cached content to be removed\&. If one or more URLs are specified, each URL will be deleted from the cache, if present\&.
+htcacheclean is used to keep the size of mod_disk_cache's storage within a given size limit, or limit on inodes in use\&. This tool can run either manually or in daemon mode\&. When running in daemon mode, it sleeps in the background and checks the cache directory at regular intervals for cached content to be removed\&. You can stop the daemon cleanly by sending it a TERM or INT signal\&. When run manually, a once off check of the cache directory is made for cached content to be removed\&. If one or more URLs are specified, each URL will be deleted from the cache, if present\&.
.SH "OPTIONS"
Daemonize and repeat cache cleaning every \fIinterval\fR minutes\&. This option is mutually exclusive with the -D, -v and -r options\&. To shutdown the daemon cleanly, just send it a SIGTERM or SIGINT\&.
.TP
-D
-Do a dry run and don't delete anything\&. This option is mutually exclusive with the -d option\&.
+Do a dry run and don't delete anything\&. This option is mutually exclusive with the -d option\&. When doing a dry run and deleting directories with -t, the inodes reported deleted in the stats cannot take into account the directories deleted, and will be marked as an estimate\&.
.TP
-v
Be verbose and print statistics\&. This option is mutually exclusive with the -d option\&.
-l\fIlimit\fR
Specify \fIlimit\fR as the total disk cache size limit\&. The value is expressed in bytes by default (or attaching B to the number)\&. Attach K for Kbytes or M for MBytes\&.
.TP
+-L\fIlimit\fR
+Specify \fIlimit\fR as the total disk cache inode limit\&.
+.TP
-i
Be intelligent and run only when there was a modification of the disk cache\&. This option is only possible together with the -d option\&.
.TP
<p>Introduces the new provider framework for authn and authz</p>
+ <h3><a name="mod_cache" id="mod_cache">mod_cache (changed)</a></h3>
+
+ <p>Introduces a commit_entity() function to the cache provider interface,
+ allowing atomic writes to cache. Add a cache_status() hook to report
+ the cache decision. Remove all private structures and functions from the
+ public mod_cache.h header file.</p>
+
+
<h3><a name="mod_core" id="mod_core">mod_core (NEW!)</a></h3>
<p>This introduces low-level APIs to send arbitrary headers,
and exposes functions to handle HTTP OPTIONS and TRACE.</p>
+ <h3><a name="mod_disk_cache" id="mod_disk_cache">mod_disk_cache (changed)</a></h3>
+
+ <p>Changes the disk format of the disk cache to support atomic cache
+ updates without locking. The device/inode pair of the body file is
+ embedded in the header file, allowing confirmation that the header
+ and body belong to one another.</p>
+
+
<h3><a name="mod_request" id="mod_request">mod_request (NEW!)</a></h3>
<p>The API for <code class="module"><a href="../mod/mod_request.html">mod_request</a></code>, to make input data
<dt><code class="module"><a href="./mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code></dt>
<dd>FastCGI Protocol backend for <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code></dd>
+
+ <dt><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code></dt>
+
+ <dd><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> can now cache HEAD requests.</dd>
+
+ <dd>Where possible, <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> directives can now be set
+ per directory, instead of per server.</dd>
+
+ <dd>The base URL of cached URLs can be customised, so that a cluster of
+ caches can share the same endpoint URL prefix.</dd>
+
+ <dd><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> is now capable of serving stale cached
+ data when a backend is unavailable (error 5xx).</dd>
+
+ <dd><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> can now insert HIT/MISS/REVALIDATE into
+ an X-Cache header.</dd>
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<dl>
<dt>fcgistarter</dt>
<dd>FastCGI deamon starter utility</dd>
+ <dt>htcacheclean</dt>
+ <dd>Current cached URLs can now be listed, with optional metadata
+ included.</dd>
+ <dd>Allow explicit deletion of individual cached URLs from the
+ cache.</dd>
+ <dd>File sizes can now be rounded up to the given block size, making
+ the size limits map more closely to the real size on disk.</dd>
+ <dd>Cache size can now be limited by the number of inodes, instead
+ of or in addition to being limited by the size of the files on
+ disk.</dd>
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
files, and a memcache distributed cache are currently
supported.</dd>
+ <dt>Cache Status Hook Added</dt>
+
+ <dd>The <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> module now includes a new
+ <code>cache_status</code> hook, which is called when the caching
+ decision becomes known. A default implementation is provided
+ which adds an optional <code>X-Cache</code> and
+ <code>X-Cache-Detail</code> header to the response.</dd>
</dl>
<p>The developer documentation contains a
</div>
<p><code>htcacheclean</code> is used to keep the size of
- <code class="module"><a href="../mod/mod_disk_cache.html">mod_disk_cache</a></code>'s storage within a certain limit. This
- tool can run either manually or in daemon mode. When running in
- daemon mode, it sleeps in the background and checks the cache directory
- at regular intervals for cached content to be removed. You can stop the daemon
- cleanly by sending it a TERM or INT signal. When run manually, a once off
- check of the cache directory is made for cached content to be removed. If
- one or more URLs are specified, each URL will be deleted from the cache, if
- present.</p>
+ <code class="module"><a href="../mod/mod_disk_cache.html">mod_disk_cache</a></code>'s storage within a given size limit, or
+ limit on inodes in use. This tool can run either manually or in daemon mode.
+ When running in daemon mode, it sleeps in the background and checks the cache
+ directory at regular intervals for cached content to be removed. You can stop
+ the daemon cleanly by sending it a TERM or INT signal. When run manually, a
+ once off check of the cache directory is made for cached content to be
+ removed. If one or more URLs are specified, each URL will be deleted from
+ the cache, if present.</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#synopsis">Synopsis</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#options">Options</a></li>
[ -<strong>n</strong> ]
[ -<strong>R</strong><var>round</var> ]
-<strong>p</strong><var>path</var>
- -<strong>l</strong><var>limit</var></code></p>
-
+ [-<strong>l</strong><var>limit</var>|
+ -<strong>L</strong><var>limit</var>]</code></p>
+
<p><code><strong>htcacheclean</strong>
[ -<strong>n</strong> ]
[ -<strong>t</strong> ]
[ -<strong>R</strong><var>round</var> ]
-<strong>d</strong><var>interval</var>
-<strong>p</strong><var>path</var>
- -<strong>l</strong><var>limit</var></code></p>
+ [-<strong>l</strong><var>limit</var>|
+ -<strong>L</strong><var>limit</var>]</code></p>
<p><code><strong>htcacheclean</strong>
[ -<strong>v</strong> ]
<dt><code>-D</code></dt>
<dd>Do a dry run and don't delete anything. This option is mutually
- exclusive with the <code>-d</code> option.</dd>
+ exclusive with the <code>-d</code> option. When doing a dry run and
+ deleting directories with <code>-t</code>, the inodes reported deleted
+ in the stats cannot take into account the directories deleted, and will
+ be marked as an estimate.</dd>
<dt><code>-v</code></dt>
<dd>Be verbose and print statistics. This option is mutually exclusive
number). Attach <code>K</code> for Kbytes or <code>M</code> for
MBytes.</dd>
+ <dt><code>-L<var>limit</var></code></dt>
+ <dd>Specify <var>limit</var> as the total disk cache inode limit.</dd>
+
<dt><code>-i</code></dt>
<dd>Be intelligent and run only when there was a modification of the disk
cache. This option is only possible together with the <code>-d</code>