Re: fastcgi cache use stale "updating" — improvement suggestion

Maxim Dounin mdounin at mdounin.ru
Thu Sep 11 13:42:49 UTC 2014


Hello!

On Wed, Sep 10, 2014 at 03:27:10PM -0400, nanochelandro wrote:

> Maxim Dounin Wrote:
> > nginx needs a client request to be able to request a 
> > resource from a backend and to save it to the cache.
> 
> I'm afraid my explanation wasn't clear enough.
> There's no need to make nginx able to make requests to fastcgi on it's own
> initiative.
> 
> How it works today:
> A client makes a request. Nginx sees the cache has expired and issues a
> request to fastcgi. It takes some time and client is patiently *waiting*.
> Finally, after nginx gets a response from fastcgi app, it stores it in cache
> and sends it to the client.
> 
> How it can be improved:
> A client makes a request. Nginx sees the cache has expired and issues a
> request to fastcgi. But nginx doesn't wait for fastcgi response, and
> *immediately* responds to the client with *stale* cache contents (if it
> exists). Client is like "whoa, that was fast!". And later, eventually, nginx
> gets a response from fastcgi app and updates cache.

Uhm, it looks like I wasn't clear enough.  What you suggest is 
perfectly understood, thanks (and I believe there is even an 
enhancement ticket in trac about this).  The problem is that nginx 
needs a request object (and a connection object) to get/cache a 
response, and returning a stale cached response means the request 
object will be used to send the cached response.

-- 
Maxim Dounin
http://nginx.org/



More information about the nginx mailing list