Delivering expired documents when backend is down

Poul-Henning Kamp phk at
Tue Apr 24 10:35:06 CEST 2007

In message <20070424083146.GA67181 at>, Anders Nordby writes:
>One of the design goals of Varnish was to be able to deliver content
>when your backend is down, as far as I can remember. Now, I may be
>stupid, but in mgt_vcc.c, there is this default VCL which is confusing:
>sub vcl_timeout{
>        discard;
>Is the object really discarded? What sort of trouble would I be
>getting into if I remove discard from vcl_timeout?

Right now:  quite a lot :-)

vcl_timeout is the background job that is run when the object
is 30 seconds from expiring.

the 30 seconds will become configurable and vcl_timeout will
be where gzip compression is initiated and where prefetching
can be started.

>Basically, I want to know, how do I deliver expired content if backend
>is down. There's no toggle to switch on and off such a behaviour?
>Is the answer to use a sufficiently high ttl?

That's certainly part of it.

Right now we don't have a good concept of "backend is down" in Varnish
so implementing a ttl overriding check is pretty hard as it is.

There's a reason why we look for sponsors :-)

Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.

More information about the varnish-misc mailing list