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
Igor Sysoev
3210b282f5
test cache path levels while reconfiguration
2009-08-10 13:18:40 +00:00
Igor Sysoev
bd9eda9986
$upstream_cache_status
2009-06-18 13:34:47 +00:00
Igor Sysoev
bf22945140
add response file uniq while loading cold cache on demand
2009-06-12 20:32:42 +00:00
Igor Sysoev
55192e7470
proxy_cache_use_stale/fastcgi_cache_use_stale updating
2009-06-06 18:49:47 +00:00
Igor Sysoev
fa524e9063
delete useless r->cache->uses
2009-06-06 17:48:54 +00:00
Igor Sysoev
ae7e8886f6
remove remnants
2009-06-06 14:13:49 +00:00
Igor Sysoev
f7a08d5f9a
support attaching to an existent Win32 shared memory
2009-04-18 19:27:28 +00:00
Igor Sysoev
c7f876bd4c
move zone name from ngx_shm_zone_t to ngx_shm_t to use Win32 shared memory
2009-04-16 19:25:09 +00:00
Igor Sysoev
9ce893b13b
set cache manager maximum sleep time to 10s
2009-04-10 17:46:25 +00:00