<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nginx.git/src/http/ngx_http_cache.h, branch release-1.28.1</title>
<subtitle>nginx</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/'/>
<entry>
<title>Cache: keep c-&gt;body_start when Vary changes (ticket #2029).</title>
<updated>2020-09-09T16:26:27+00:00</updated>
<author>
<name>Sergey Kandaurov</name>
<email>pluknet@nginx.com</email>
</author>
<published>2020-09-09T16:26:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=dc1b14126e0a7a45018d95b149ebdb29985f18f1'/>
<id>dc1b14126e0a7a45018d95b149ebdb29985f18f1</id>
<content type='text'>
If the variant hash doesn't match one we used as a secondary cache key,
we switch back to the original key.  In this case, c-&gt;body_start was kept
updated from an existing cache node overwriting the new response value.
After file cache update, it led to discrepancy between a cache node and
cache file seen as critical errors "file cache .. has too long header".
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If the variant hash doesn't match one we used as a secondary cache key,
we switch back to the original key.  In this case, c-&gt;body_start was kept
updated from an existing cache node overwriting the new response value.
After file cache update, it led to discrepancy between a cache node and
cache file seen as critical errors "file cache .. has too long header".
</pre>
</div>
</content>
</entry>
<entry>
<title>Cache: reset c-&gt;body_start when reading a variant on Vary mismatch.</title>
<updated>2017-08-04T16:37:37+00:00</updated>
<author>
<name>Sergey Kandaurov</name>
<email>pluknet@nginx.com</email>
</author>
<published>2017-08-04T16:37:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=ed0b19cdd4a9118cf8795ba2cf0a56684624bb41'/>
<id>ed0b19cdd4a9118cf8795ba2cf0a56684624bb41</id>
<content type='text'>
Previously, a variant not present in shared memory and stored on disk using a
secondary key was read using c-&gt;body_start from a variant stored with a main
key.  This could result in critical errors "cache file .. has too long header".
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, a variant not present in shared memory and stored on disk using a
secondary key was read using c-&gt;body_start from a variant stored with a main
key.  This could result in critical errors "cache file .. has too long header".
</pre>
</div>
</content>
</entry>
<entry>
<title>Cache: introduced min_free cache clearing.</title>
<updated>2020-06-22T15:03:00+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2020-06-22T15:03:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=0a683fdd9313b9796bf39442fd117beaa63a7157'/>
<id>0a683fdd9313b9796bf39442fd117beaa63a7157</id>
<content type='text'>
Clearing cache based on free space left on a file system is
expected to allow better disk utilization in some cases, notably
when disk space might be also used for something other than nginx
cache (including nginx own temporary files) and while loading
cache (when cache size might be inaccurate for a while, effectively
disabling max_size cache clearing).

Based on a patch by Adam Bambuch.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Clearing cache based on free space left on a file system is
expected to allow better disk utilization in some cases, notably
when disk space might be also used for something other than nginx
cache (including nginx own temporary files) and while loading
cache (when cache size might be inaccurate for a while, effectively
disabling max_size cache clearing).

Based on a patch by Adam Bambuch.
</pre>
</div>
</content>
</entry>
<entry>
<title>Cache: increased cache header Vary and ETag lengths to 128.</title>
<updated>2017-02-10T14:49:19+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2017-02-10T14:49:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=5544756296e5abaecb5f640753d6de939b701035'/>
<id>5544756296e5abaecb5f640753d6de939b701035</id>
<content type='text'>
This allows to store larger ETag values for proxy_cache_revalidate,
including ones generated as SHA256, and cache responses with longer
Vary (ticket #826).

In particular, this fixes caching of Amazon S3 responses with CORS
enabled, which now use "Vary: Origin, Access-Control-Request-Headers,
Access-Control-Request-Method".

Cache version bumped accordingly.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This allows to store larger ETag values for proxy_cache_revalidate,
including ones generated as SHA256, and cache responses with longer
Vary (ticket #826).

In particular, this fixes caching of Amazon S3 responses with CORS
enabled, which now use "Vary: Origin, Access-Control-Request-Headers,
Access-Control-Request-Method".

Cache version bumped accordingly.
</pre>
</div>
</content>
</entry>
<entry>
<title>Upstream: proxy_cache_background_update and friends.</title>
<updated>2017-02-10T12:13:41+00:00</updated>
<author>
<name>Roman Arutyunyan</name>
<email>arut@nginx.com</email>
</author>
<published>2017-02-10T12:13:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=3e4339eacd35084afae67826295b29ae7ad73dc5'/>
<id>3e4339eacd35084afae67826295b29ae7ad73dc5</id>
<content type='text'>
The directives enable cache updates in subrequests.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The directives enable cache updates in subrequests.
</pre>
</div>
</content>
</entry>
<entry>
<title>Cache: support for stale-while-revalidate and stale-if-error.</title>
<updated>2016-12-22T11:25:34+00:00</updated>
<author>
<name>Roman Arutyunyan</name>
<email>arut@nginx.com</email>
</author>
<published>2016-12-22T11:25:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=da2b2cf1e039630cec84e8b67d99c4d578361b0d'/>
<id>da2b2cf1e039630cec84e8b67d99c4d578361b0d</id>
<content type='text'>
Previously, there was no way to enable the proxy_cache_use_stale behavior by
reading the backend response.  Now, stale-while-revalidate and stale-if-error
Cache-Control extensions (RFC 5861) are supported.  They specify, how long a
stale response can be used when a cache entry is being updated, or in case of
an error.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, there was no way to enable the proxy_cache_use_stale behavior by
reading the backend response.  Now, stale-while-revalidate and stale-if-error
Cache-Control extensions (RFC 5861) are supported.  They specify, how long a
stale response can be used when a cache entry is being updated, or in case of
an error.
</pre>
</div>
</content>
</entry>
<entry>
<title>Cache: prefix-based temporary files.</title>
<updated>2016-11-03T14:10:29+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2016-11-03T14:10:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=f3093695b9e3069ef4c525cf24b5ddda8ae5f83a'/>
<id>f3093695b9e3069ef4c525cf24b5ddda8ae5f83a</id>
<content type='text'>
On Linux, the rename syscall can be slow due to a global file system lock,
acquired for the entire rename operation, unless both old and new files are
in the same directory.  To address this temporary files are now created
in the same directory as the expected resulting cache file when using the
"use_temp_path=off" parameter.

This change mostly reverts 99639bfdfa2a and 3281de8142f5, restoring the
behaviour as of a9138c35120d (with minor changes).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On Linux, the rename syscall can be slow due to a global file system lock,
acquired for the entire rename operation, unless both old and new files are
in the same directory.  To address this temporary files are now created
in the same directory as the expected resulting cache file when using the
"use_temp_path=off" parameter.

This change mostly reverts 99639bfdfa2a and 3281de8142f5, restoring the
behaviour as of a9138c35120d (with minor changes).
</pre>
</div>
</content>
</entry>
<entry>
<title>Modules compatibility: compatibility with NGX_THREADS.</title>
<updated>2016-10-10T15:44:17+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2016-10-10T15:44:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=9f6e8673f40f7532bf3059bda41e05b545520dd3'/>
<id>9f6e8673f40f7532bf3059bda41e05b545520dd3</id>
<content type='text'>
With this change it is now possible to load modules compiled without
the "--with-threads" configure option into nginx binary compiled with it,
and vice versa (if a module does not use thread-specific functions),
assuming both use the "--with-compat" option.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
With this change it is now possible to load modules compiled without
the "--with-threads" configure option into nginx binary compiled with it,
and vice versa (if a module does not use thread-specific functions),
assuming both use the "--with-compat" option.
</pre>
</div>
</content>
</entry>
<entry>
<title>Cache: cache manager limits.</title>
<updated>2016-10-05T11:22:30+00:00</updated>
<author>
<name>Dmitry Volyntsev</name>
<email>xeioex@nginx.com</email>
</author>
<published>2016-10-05T11:22:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=b072a6957c97ca7c33a64b1a34f7b66c6e209acf'/>
<id>b072a6957c97ca7c33a64b1a34f7b66c6e209acf</id>
<content type='text'>
The new parameters "manager_files", "manager_sleep"
and "manager_threshold" were added to proxy_cache_path
and friends.

Note that ngx_path_manager_pt was changed to return ngx_msec_t
instead of time_t (API change).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The new parameters "manager_files", "manager_sleep"
and "manager_threshold" were added to proxy_cache_path
and friends.

Note that ngx_path_manager_pt was changed to return ngx_msec_t
instead of time_t (API change).
</pre>
</div>
</content>
</entry>
<entry>
<title>Modules compatibility: cache purge fields.</title>
<updated>2016-09-29T15:06:01+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2016-09-29T15:06:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=27c8065e7b713dfa44ca52616c55987a41e25788'/>
<id>27c8065e7b713dfa44ca52616c55987a41e25788</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
