Are parallel ESI fetches on the roadmap?

Lasse Karstensen lkarsten at varnish-software.com
Thu Oct 16 13:37:07 CEST 2014


On Wed, Oct 15, 2014 at 09:30:12AM -0400, Jay LaPorte wrote:
> It is with some surprise that I today discovered (through benchmarking with
> `varnishlog`) that Varnish does not support fetching ESI requests in
> parallel. I am in the process of developing an JSON API that makes heavy
> use of ESI—a response may commonly contain hundreds of ESI tags to its
> constituent parts—and if ESI requests are done serially, uncached (or even
> partially uncached) responses take an eternity. (Our use case is such that
> the individual parts of a request have a high cache hit rate, but the
> requests themselves do not.)
> From looking around the web, it seems that Varnish 4.0 did the preliminary
> groundwork to make parallel ESI fetches possible, and that they are a
> planned feature:
> *   https://www.varnish-cache.org/trac/wiki/Future_ESI
> *
> https://www.varnish-software.com/blog/varnish-40-qa-performance-vmods-ssl-ims-swr-and-more
> *   https://twitter.com/ruben_varnish/status/522323253076172800
> 
> I was wondering if there was any rough roadmap or ETA for implementing it
> already in place, and if so, where I can track it's progress? If there is
> not, who should I contact regarding it? (Allocating funds to Varnish in
> order to help support this feature is not out of the question depending on
> the specifics, and furthermore I'd be very happy to help test it if need
> be.)

Hi.

We (as in the core dev team) have discussed parallell ESI as a potential
4.1 feature.

As it is now, we haven't decided on this since HTTP/2.0 needs to be
catered for as well. I'd expect this to formalise a bit more on the next
developer meeting in November.

Currently you can perhaps hack/work around this by setting up Varnish as
a backend to itself. Then the "inner" varnish can give you a slightly
stale version (enable grace), while a background fetch is kicked off to
renew the stored object. This should remove most of the extra latency,
given that you in fact can cache the ESI subresources.

Varnish Software (email: sales at varnish-software.com) may be able to help
you out if you are willing to pay for the parallell ESI feature.

-- 
Lasse Karstensen
Varnish Software AS



More information about the varnish-misc mailing list