pipe mode and sendfile?

Poul-Henning Kamp phk at phk.freebsd.dk
Tue Mar 29 15:27:55 CEST 2016

In message <CABoVN9BS-ZSnuHyaAyaWKEHeVAvDmg3HcA0PzKvZZX=heymF_w at mail.gmail.com>
, Dridi Boukelmoune writes:
>>> > If we want per-stream piping, we need also vcl_http1_stream{} and
>>> > vcl_http2_stream{} to decide that, and now it gets really messy.
>>> Wouldn't the vcl_(recv|req) already map to a stream in H2?
>> I asked the question on IRC, and the headers compression popped up. But
>> actually, the headers we care about will be in about will be in HEADERS
>> frames. So, in case of H/2, piping would be more akin to passing with header
>> parsing.
>I'd even go further and say that headers compression is handled by the
>session and should not be a per-stream concern.

We don't know how arbitrary FOO-over-H2 streams will compress and
have no intention of learning about it.

It's bad enough to pipe half the HTTP streams to one backend and
the other half to the other.  Think for instance about how we would
merge the two backend->client HPACK state into one.

So unless somebody volunteers to write that code *and* gets it past
my review, "pipe" in 5.0 is per connection only...

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-dev mailing list