VFP and VDP configurations
Nils Goroll
slink at schokola.de
Sun Dec 17 18:42:34 UTC 2017
Hi,
at first, I found Rezas concept appealing and there are some aspects which I
think we should take from it:
- take the protocol-vpfs v1f_* h2_body out of the game for vcl
- format specifiers:
- have:
(gzip), (plain) *1), (esi)
- ideas:
(br), (buffertext) *2)
esi being a format which can contain gzip segments, but that's would
be opaque to other vfps
- the notion of format conversion(s) that a vfp can handle, e.g.
- have:
esi: (plain)->(esi), (gzip)->(esi)
gzip: (plain)->(gzip)
ungzip: (gzip)->(plain)
- ideas:
br: (plain)->(br)
unbr: (br)->(plain)
re: (plain)->(plain)
But reflecting on it, I am not so sure about runtime resolution and these
aspects in particular:
- "algorithm (...) can reorder the candidates if that allows a match."
- "(A VFP) can (...) add new VFPs to the candidate list, remove itself, remove
other VFPs, or delete itself or other VFPs
I wonder how we would even guarantee that this algorithm ever terminates.
So I think we really need to have VCL compile time checking of all possible
outcomes:
- Either by keeping track of all possible filter chain states at each point
during VCL compilation
- or by restricting ourselves to setting all of the filter chain at once.
The latter will probably lead to largish decision trees in VCL for advanced
cases, but I think we should start with this simple and safe solution with the
format/conversion check.
Nils
*1) "(text)" in reza's concept
*2) not sure if this is a good idea, maybe multi segment regexen are the better
idea
More information about the varnish-dev
mailing list