4.0 into the home-stretch

Poul-Henning Kamp phk at phk.freebsd.dk
Mon Feb 17 09:56:49 CET 2014

Last wednesday I went to Oslo and tried to hammer out a plan for releasing
4.0-R with the V-S crew.

The big thing is documentation, there is a lot of docs to be written
and you are all cordially invited to help out :-)

We also hashed out a plan for the backend-fetch-retry-error issue that
keeps confounding me, and I think it will hold up.

On the client side:

	vcl_error{} becomes vcl_synth{}

	The client side alyways get an object back from a fetch,
	fetch failures will be handled on the backend side.  The
	object we get back may be a 503 and it may be a pass, but
	it is an object.

	This laves only one "internal" error on the client side:
	Restarting too many times.   We will handle this by making
	an attempt to restart past $max_restarts turn into:


On the backend side:

	vcl_backend_fetch{} Prepares the the request to be sent to
	the backend.

	If we get a reply from the backend, we got to vcl_backend_response{}
	which can return 'deliver', 'retry' or 'abandon'  (pass is done
	by setting beresp.do_pass, because it is orthogonal)

	If we do not get a reply or if v_b_r returns 'abandon' we end up
	in vcl_backend_error{}, which in the builtin-vcl creates a 503
	pass error page like vcl_error{} does today.  Possible returns
	are retry and deliver.

	Too may retries take you to v_b_e{}.

I was proposed to make obj.* entirely read-only.

Changing obj.ttl was essentially done to hack up grace, and no longer
makes any sense.

Obj.hits and obj.last_use are of speculative use at best, mostly
for debugging, and it's questionable if they should live on individual
objects or on the objhdr in the first place.

Making objects read/only once created, will allow us to implement
more efficient stevedore modules (at least we think so).

We also want to move the LRU processing into the stevedores, but
that does not have to happen for 4.0, that can be done later.

Martin promised to sort out the new tool-lib he made before 4.0

X-Forward-For and Connection: close for pipe will be moved to
C-code: They can be fixed in VCL if people have special requirements.

I need to implement the acct/stats VSL records (per VDD13Q4 and
subsequent email threads).

Anything missing ?

We're currently aiming at a release in the april 1st time frame.

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