Igor Sysoev
8b2bf08165
Cache size accounting fix: actual cache size on disk was less than
...
needed by sum of sizes of files loaded by worker processes themselves
while cache loader was running.
The bug has been introduced in r3900.
2011-08-25 17:29:34 +00:00
Igor Sysoev
0d18687b03
The change in adaptive loader behaviour introduced in r3975:
...
now cache loader processes either as many files as specified by loader_files
or works no more than time specified by loader_threshold during each iteration.
loader_threshold was previously used to decrease loader_files or
to increase loader_timeout and this might eventually result in
downgrading loader_files to 1 and increasing loader_timeout to large values
causing loading cache for forever.
2011-08-22 10:16:49 +00:00
Igor Sysoev
922f106582
loader_files, loader_sleep, and loader_threshold
2011-07-29 15:09:02 +00:00
Igor Sysoev
d5a25a4b97
set correct configuration file values while adding path
...
patch by Maxim Dounin
2011-07-25 10:22:38 +00:00
Igor Sysoev
1850ce09a1
rename ngx_http_file_cache_manager_sleep() to ngx_http_file_cache_loader_sleep()
...
and do not use it all in cache manager: this is a vestige of the times when
cache manager loaded cache
2011-07-25 09:45:00 +00:00
Igor Sysoev
d8ce166e2e
do not close connection if cache file is too small: replace it with valid one
2011-07-24 20:04:47 +00:00
Igor Sysoev
c2cafadfa5
elimination of reading cache files by cache loader
2011-07-24 19:46:53 +00:00
Igor Sysoev
92161bac79
fix r3968
2011-07-24 19:43:52 +00:00
Igor Sysoev
6cb6fc4a09
update the previous commit:
...
removing dependencies on file uniq since WIN32_FIND_DATA has no such field
2011-07-24 17:36:26 +00:00
Igor Sysoev
c1250b6a49
The cache loader performs two tasks: inserting cache objects in inactivity
...
list and evaluating total cache size. Reading just directory is enough for
this purpose. Elimination of reading cache files saves at least one disk I/O
operation per file.
Preparation for elimination of reading cache files by cache loader:
removing dependencies on the reading:
*) cache node valid_sec and valid_msec are used only for caching errors;
*) upstream buffer size can be used instead of cache node body_start.
2011-07-24 16:47:31 +00:00
Igor Sysoev
bb389f6111
fuse two if's in one condition
2011-07-24 16:10:06 +00:00
Igor Sysoev
64d024605a
style fix
2011-07-24 16:06:24 +00:00
Igor Sysoev
a0202f26c6
fix r3756: release lock to allow other process to delete cache node
...
patch by Maxim Dounin
2011-07-19 10:35:02 +00:00
Igor Sysoev
0d6283918f
fix a broken cached response if bypass/no_cache directive values are different,
...
the bug has been introduced in r3700
2011-05-13 10:05:38 +00:00
Igor Sysoev
ef1f33b0db
Use more precise stat.st_blocks to account cache size on Unix
...
instead of file length rounded to a file system block size.
There is no similar way on Windows, so rounding to a cache->bsize is kept.
2011-04-22 10:06:43 +00:00
Igor Sysoev
711eeb8514
fix CPU hog in cache manager
...
patch by Maxim Dounin
2011-04-08 15:27:53 +00:00
Igor Sysoev
a256afd064
fix race condition if during reconfiguration two cache managers try
...
to delete old inactive entries: one of them removes a entry just locked by
other manager from the queue and the rbtree as long inactive entry,
causes the latter manager to segfault leaving cache mutex locked,
the bug has been introduced in r3727
2010-09-02 14:31:47 +00:00
Igor Sysoev
7268cc8c6e
zero fcn->updating after node allocation
2010-08-04 13:34:23 +00:00
Igor Sysoev
2b74841a4f
error status codes could be cached for next request only,
...
the bug has been introduced in r3712
2010-08-04 12:55:27 +00:00
Igor Sysoev
b16b8ddae6
delete surplus assignment
2010-08-03 09:42:53 +00:00
Igor Sysoev
029299aaa4
change logic slightly
2010-08-02 12:34:15 +00:00
Igor Sysoev
c7b2e2a570
change order
2010-08-02 12:32:33 +00:00
Igor Sysoev
2108fabea2
*) delete cache key node after a cache file removal
...
*) move fileless cache key node removal in ngx_http_file_cache_delete()
2010-08-02 12:27:58 +00:00
Igor Sysoev
1cd46b88a4
count cache key node usage for cached error statuses
2010-07-30 12:41:55 +00:00
Igor Sysoev
09ce1e2d89
do not free unused cache node if cache min_uses > 1,
...
the bug has been introduced in r3695, r3708, r3711
2010-07-30 10:20:08 +00:00
Igor Sysoev
9135a0e022
move debug logging inside ngx_http_file_cache_free()
2010-07-28 15:56:56 +00:00
Igor Sysoev
406a68003c
several changes in cache cleanup handling:
...
*) now ngx_http_file_cache_cleanup() uses ngx_http_file_cache_free()
*) ngx_http_file_cache_free() interface has been changed to accept r->cache
ngx_http_file_cache_cleanup() must use r->cache, but not r, because
there can be several r->cache's during request processing, r->cache may
be NULL at request finalising, etc.
*) test if updating request does not complete correctly
2010-07-28 15:49:34 +00:00
Igor Sysoev
18b36e5035
fix r3708 and r3695: valid_sec is set only for caching error status codes
2010-07-27 19:11:17 +00:00
Igor Sysoev
4b7637adb6
fix r3695: this commit
...
*) freed valid keys zone node
*) and did not decrease cache size, so cache manager process ete CPU time,
if cache checking max_size was enabled
2010-07-27 11:22:59 +00:00
Igor Sysoev
b1327bd842
initialize r->cache->file.fd with NGX_INVALID_FILE
2010-07-19 15:28:22 +00:00
Igor Sysoev
f7d659aa52
proxy_cache_pass, fastcgi_cache_bypass, uwsgi_cache_bypass, scgi_cache_bypass
2010-07-19 09:36:04 +00:00
Igor Sysoev
6a47b43234
rename ngx_http_file_cache_create() to ngx_http_file_cache_new()
2010-07-16 10:01:49 +00:00
Igor Sysoev
9aa3d7f667
ngx_http_file_cache_create()
2010-07-15 14:01:02 +00:00
Igor Sysoev
9e9cbee81e
ngx_http_file_cache_name()
2010-07-15 13:46:32 +00:00
Igor Sysoev
0e73a5bfb7
style fix
2010-07-15 13:10:05 +00:00
Igor Sysoev
85992f9eb3
delete empty cache zone node if we could not get response to cache
2010-07-15 13:08:51 +00:00
Igor Sysoev
9b2763a245
proxy_no_cache and fastcgi_no_cache
2010-05-24 11:01:05 +00:00
Igor Sysoev
6d45d8a50d
*) introduce ngx_time_sigsafe_update() to update the error log time only
...
*) change ngx_time_update() interface
2010-03-25 09:10:10 +00:00
Igor Sysoev
2f916a9721
*) use previously cached GMT offset value to update time from a signal handler
...
*) change ngx_time_update() interface since there are no notification methods
those return time
2010-03-13 18:08:07 +00:00
Igor Sysoev
593dec8b35
fix cached FastCGI response with large stderr output before header
2010-03-03 10:43:38 +00:00
Igor Sysoev
3662f36a54
fix a cached zero-length body case
2009-12-23 14:46:45 +00:00
Igor Sysoev
601ab90cd4
fix handling cached HTTP/0.9 response
2009-11-29 20:48:01 +00:00
Igor Sysoev
4121aa3440
export aio presence knowledge to prevent using "aio sendfile",
...
if aio does not present
2009-11-05 13:12:30 +00:00
Igor Sysoev
136dd8d1e6
use real file cache length, this fixes cache size counting for responses
...
without "Content-Length" header and 304 responses.
2009-10-07 12:55:58 +00:00
Igor Sysoev
3266171fd4
read_ahead
2009-09-30 13:21:52 +00:00
Igor Sysoev
d1e9567425
do not pass buf with empty cached response,
...
this fixes "zero size buf in output" alert
2009-09-15 15:12:03 +00:00
Igor Sysoev
a962506498
FreeBSD and Linux AIO support
2009-08-28 08:12:35 +00:00
Igor Sysoev
b7a09c5523
allow cross device temporary files atomic copying:
...
*) ngx_copy_file()
*) delete ngx_ext_rename_file_t.log_rename_error and .rename_error fields
2009-08-12 12:05:33 +00:00
Igor Sysoev
703aab0b72
unlock incompletely loaded cache
2009-08-10 15:57:42 +00:00
Igor Sysoev
4413fad0db
cache loader process
2009-08-10 13:27:14 +00:00