Welcome! Log In Create A New Profile

Advanced

Re: [PATCH 13 of 15] Tempfiles: Skip cached file if there is already newer tempfile

Vadim Fedorenko
January 30, 2022 07:38PM
Hi!

Thanks for sharing patches. It's interesting for me and I'm going to test
it soon.
For this particular patch I would suggest to reduce the scope of mutex
locking
and remove it when "serve_tempfile" is not configured. See my version below:
diff --git a/src/http/ngx_http_file_cache.c b/src/http/ngx_http_file_cache.c
index db379450..97982aed 100644
--- a/src/http/ngx_http_file_cache.c
+++ b/src/http/ngx_http_file_cache.c
@@ -460,6 +460,22 @@ ngx_http_file_cache_open(ngx_http_request_t *r)
goto done;
}

+ if (c->serve_tempfile) {
+ ngx_shmtx_lock(&cache->shpool->mutex);
+
+ if (c->node->updating) {
+ /* Do not try old cached file, jump directly to cache_lock and use
tempfile */
+ test = 0;
+ }
+
+ ngx_shmtx_unlock(&cache->shpool->mutex);
+
+ if (!test) {
+ rv = NGX_DECLINED;
+ goto done;
+ }
+ }
+
rc = ngx_http_file_cache_open_file(r, &c->file.name);
if (rc != NGX_DECLINED) {
return rc;

Best wishes,
Vadim

пт, 28 янв. 2022 г. в 17:00, Jiří Setnička via nginx-devel <
nginx-devel@nginx.org>:

> # HG changeset patch
> # User Jiří Setnička <jiri.setnicka@cdn77.com>
> # Date 1643385660 -3600
> # Fri Jan 28 17:01:00 2022 +0100
> # Node ID 5e64af4c94860cd5cf4b9af5a265d3a087e7b735
> # Parent 0e00ffe7fab3dcf3d3167851237327e5fb9e10b6
> Tempfiles: Skip cached file if there is already newer tempfile
>
> diff --git a/src/http/ngx_http_file_cache.c
> b/src/http/ngx_http_file_cache.c
> --- a/src/http/ngx_http_file_cache.c
> +++ b/src/http/ngx_http_file_cache.c
> @@ -455,6 +455,20 @@ ngx_http_file_cache_open(ngx_http_reques
> goto done;
> }
>
> + ngx_shmtx_lock(&cache->shpool->mutex);
> +
> + if (c->serve_tempfile && c->node->updating) {
> + /* Do not try old cached file, jump directly to cache_lock and
> use tempfile */
> + test = 0;
> + }
> +
> + ngx_shmtx_unlock(&cache->shpool->mutex);
> +
> + if (!test) {
> + rv = NGX_DECLINED;
> + goto done;
> + }
> +
> rc = ngx_http_file_cache_open_file(r, &c->file.name);
> if (rc != NGX_DECLINED) {
> return rc;
> _______________________________________________
> nginx-devel mailing list -- nginx-devel@nginx.org
> To unsubscribe send an email to nginx-devel-leave@nginx.org
>
_______________________________________________
nginx-devel mailing list -- nginx-devel@nginx.org
To unsubscribe send an email to nginx-devel-leave@nginx.org
Subject Author Views Posted

[PATCH 00 of 15] Serve all requests from single tempfile

Jiří Setnička via nginx-devel 464 January 28, 2022 11:36AM

[PATCH 01 of 15] ngx core - obtain number appended to the temp file name

Jiří Setnička via nginx-devel 132 January 28, 2022 11:38AM

[PATCH 02 of 15] ngx core - ensure that tempfile number never be 0

Jiří Setnička via nginx-devel 139 January 28, 2022 11:40AM

[PATCH 03 of 15] Cache: Shared memory for tempfile nodes

Jiří Setnička via nginx-devel 278 January 28, 2022 11:42AM

[PATCH 04 of 15] Cache: tf_node for tracking opened tempfile

Jiří Setnička via nginx-devel 130 January 28, 2022 11:44AM

[PATCH 05 of 15] http upstream & file_cache: store temp file number and length in tf_node

Jiří Setnička via nginx-devel 139 January 28, 2022 11:46AM

[PATCH 07 of 15] Tempfiles: Wait handlers

Jiří Setnička via nginx-devel 122 January 28, 2022 11:48AM

[PATCH 06 of 15] Configuration for tempfiles serving

Jiří Setnička via nginx-devel 160 January 28, 2022 11:50AM

[PATCH 09 of 15] Tempfiles: Sending data from tempfile

Jiří Setnička via nginx-devel 127 January 28, 2022 11:52AM

[PATCH 08 of 15] Tempfiles: Mechanism of opening tempfiles used for serving paralell requests

Jiří Setnička via nginx-devel 130 January 28, 2022 11:54AM

[PATCH 10 of 15] Tempfiles: Setup event handlers in ngx_http_upstream.c

Jiří Setnička via nginx-devel 143 January 28, 2022 11:56AM

[PATCH 11 of 15] Tempfiles: reset c->body_start when updating a tempfile

Jiří Setnička via nginx-devel 149 January 28, 2022 11:58AM

[PATCH 12 of 15] Tempfiles: Expired tempfiles

Jiří Setnička via nginx-devel 153 January 28, 2022 12:00PM

[PATCH 13 of 15] Tempfiles: Skip cached file if there is already newer tempfile

Jiří Setnička via nginx-devel 246 January 28, 2022 12:02PM

Re: [PATCH 13 of 15] Tempfiles: Skip cached file if there is already newer tempfile

Vadim Fedorenko 150 January 30, 2022 07:38PM

Re: [PATCH 13 of 15] Tempfiles: Skip cached file if there is already newer tempfile

Jiří Setnička via nginx-devel 142 February 07, 2022 06:22AM

[PATCH 14 of 15] Tempfiles: Set send_timeout inside ngx_http_cache_send

Jiří Setnička via nginx-devel 157 January 28, 2022 12:04PM

[PATCH 15 of 15] Use cache status UPDATING when serving from tempfile

Jiří Setnička via nginx-devel 131 January 28, 2022 12:06PM

Re: [PATCH 00 of 15] Serve all requests from single tempfile

Jiří Setnička via nginx-devel 127 February 07, 2022 06:18AM

Re: [PATCH 00 of 15] Serve all requests from single tempfile

Roman Arutyunyan 142 February 07, 2022 06:32AM

Re: [PATCH 00 of 15] Serve all requests from single tempfile

Jiří Setnička via nginx-devel 164 February 07, 2022 07:30AM

Re: [PATCH 00 of 15] Serve all requests from single tempfile

Roman Arutyunyan 179 February 08, 2022 06:20AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 295
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready