[RFC] version 2 state diagram (take 2)

Poul-Henning Kamp phk at phk.freebsd.dk
Mon Feb 12 15:42:22 CET 2007

In message <ujrodnza5z8.fsf at cat.linpro.no>, Dag-Erling =?iso-8859-1?Q?Sm=F8rgrav?=

>I assume all the red arrows point to vcl_error()?

Yes, I didn't want to clutter the drawing with them.

>>     vcl_hash{}
>> 	Place holder for the idea that it might be desirable to
>> 	hash on more or different fields than (URL+Host:).
>> 	Not fully thought through yet, may or may not happen.
>Strictly speaking, you need to hash on every header mentioned in
>Vary:, but you don't even have that information until you've retrieved
>at least one version of the document from the backend - and even then,
>when a new request comes in, you need to identify the requested
>document to know which headers to hash on - so it looks like we need a
>two-level hash.

You can't hash on Vary, it's a response side header.  Vary must be
handled by traversing the list of possible objects looking for matches.

>>     vcl_hit{}
>> 	Not really sure what you would do here, but you get
>> 	the chance if you dream up something.
>> 	One possible thing would be to react to high hitrates
>> 	and initiate compression.
>...or check the time remaining before expiry and initiate a prefetch?
>You don't mention vcl_timeout, which in any case isn't called until
>after the document has expired.

My plans for vcl_timeout{} are not firm yet, but the idea is to
call vcl_timeout{} before expiry to decide on prefetching and
possibly compression.

The comment above therefore hints at the vcl_hit{} being able
to reduce the timeout for an object, so vcl_timeout{} can get
a shot at compressing it.

But lets concentrate on the "traffic" part for now, vcl_timeout{}
needs a bit more time with the thinking cap.

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