Feature question

Lasse Karstensen lkarsten at varnish-software.com
Thu Aug 20 11:01:33 CEST 2015

On Wed, Aug 19, 2015 at 10:53:07PM +0200, Thomas Lecomte wrote:
> On Wed, Aug 19, 2015 at 5:36 PM, Thierry Leveque
> <thierry.leveque at imetrik.com> wrote:
> > [...]
> > Is something like that possible with Varnish? Is my explanation clear
> > enough?
> It is very clear, and indeed, that is how Varnish works. On the very
> first request, an object will be created in the cache, and will be
> marked as 'busy' until it is fully retrieved from the backend.
> All the incoming requests for the same object will be queued, and as
> soon as it will be fetched for the first request, it will be served to
> all the waiting clients, which means the backend will see the request
> only one time.

It can also be added that when the object TTL expires, Varnish will do
a conditional request asking the backend if the cached version is still

While this backend refresh is ongoing, any clients requesting the object
in the meantime will receive the (slightly) stale/expired copy. This
means that there is no waiting/delay before serving clients in normal

This applies for Varnish 4.0 and is of course configurable.

Lasse Karstensen
Varnish Software AS

More information about the varnish-misc mailing list