Dates

Anders Berg andersb at vgnett.no
Fri Jul 28 14:04:13 CEST 2006


On Jul 23, 2006, at 0:15, Poul-Henning Kamp wrote:

> In message <ujrbqrhfi16.fsf at cat.linpro.no>, Dag-Erling =?iso-8859-1? 
> Q?Sm=F8rgra
> v?= writes:
>
>>> We have passed this stage, and it is still not sane to release a  
>>> Alpha.
>>
>> I agree.  The code is a lot more solid in many areas than I expected
>> it to be at this stage, but there are still white spots on the map.
>
> Here is a brain-dump status report in no particular order.
>
> It should probably be in the wiki somewhere...
>
> ---------------------------------------------------------------------- 
> -
> What:
> 	Error handling on backend connections
> Situation:
> 	Right now we more or less panic on any sign of trouble.
> What needs to be done:
> 	We need to decide how to tie this into VCL
> 	Errors must be handled, presumably by retry.
> 	Timeouts probably desirable as well.
> Severity:
> 	alpha:	can live with
> 	beta:	must be improved
> 	1.0:	backend trouble SHALL not kill varnish
>

Agree.

I guess this is also tied to how Varnish handles "error/fault" on  
backend as well.


> ---------------------------------------------------------------------- 
> -
> What:
> 	Move more policy to VCL
> Situation:
> 	There seems to be no reason why we can't move more policy
> 	from C code to VCL code.
> What needs to be done:
> 	Make sure VCL support the necessary operations
> 	Move policy to default VCL functions.
> Severity:
> 	alpha:	can live with.
> 	beta:	can live with.
> 	1.0:	can live with.

Agree.

> ---------------------------------------------------------------------- 
> -
> What:
> 	VCL error implementation
> Situation:
> 	The error keyword in VCL is not implemented
> What needs to be done:
> 	Find out if this is really the right strategy, it looks
> 	more and more dubious to me.
> 	Maybe a redirect to an error document loaded with storage_tar
> 	would be more useful.
> Severity:
> 	alpha:	can live with minimal improvement
> 	beta:	can live with minimal improvement
> 	1.0:	can live with minimal improvement

Not sure what this one means. Is this the error we return to client?  
Or is this the error from backend?

By that I mean:

if (something true){

	error;

}

or a

if (backend.error){
	
	do something;

}


> ---------------------------------------------------------------------- 
> -
> What:
> 	Vary header matching
> Situation:
> 	We don't do it.
> What needs to be done:
> 	Implement it.
> 	Now that we have the http munging facilities mostly
> 	in place this is possible.
> 	Test against www.cnn.com for instance.
> Severity:
> 	alpha:	can live with
> 	beta:	can live with
> 	1.0:	can live with

Agree

> ---------------------------------------------------------------------- 
> -
> What:
> 	Performance statistics
> Situation:
> 	We have some
> What needs to be done:
> 	We need to figure out what is relevant stats
> 	We need to collect it.
> 	We need to make (some of) it available in VCL
> Severity:
> 	alpha:	can live with
> 	beta:	improvement desirable
> 	1.0:	TBD

Agree.

Stats that should be visible in VCL would from the top of my mind be.

Hits on documents. (Not sure about if we can implement this, but I am  
thinking in the line of 20.000 hits on /index.html last 2 min and ttl  
+2m. It certainly requires us to keep stats on each document/URL or a  
top-hit-list, and that may not be possible.)
Backend responstime.
Client bandwith/hits.


> ---------------------------------------------------------------------- 
> -
> What:
> 	CLI management interface
> Situation:
> 	Only minimally functional.
> What needs to be done:
> 	Reevaluate the list we created initially (ie: no unlisten)
> 	Implement TCP / SSH carried CLI port
> Severity:
> 	alpha:	can live with
> 	beta:	improvement desirable
> 	1.0:	TCP/SSH mandatory

"Reevaluate the list we created initially (ie: no unlisten" ?
Agree on the rest.

> ---------------------------------------------------------------------- 
> -
> What:
> 	VCL completeness
> Situation:
> 	VCL can't do much yet.
> What needs to be done:
> 	Go through our list, implement in proritized order
> Severity:
> 	alpha:	can live with
> 	beta:	HTTP header manipulation desirable
> 	1.0:	TBD

Agree.

Should I prioritize?


> ---------------------------------------------------------------------- 
> -
> What:
> 	VCL compiler error checking
> Situation:
> 	Errors from GCC and at load-time still happens.
> 	Failed loading of default/boot VCL is not currently fatal.
> What needs to be done:
> 	Check conditions better, for instance do getaddrinfo() on
> 	ACL targets and warn if non () entries fail.
> Severity:
> 	alpha:	can live with
> 	beta:	can live with
> 	1.0:	can live with
>

Agree.

We at least need getaddrinfo on the backend IP's, but I guess that  
this is meant on other cases?

> ---------------------------------------------------------------------- 
> -
> What:
> 	(regression-)testing
> Situation:
> 	We need a way to build regression tests.
> 	"varnishtester" is maybe a beginning.
> What needs to be done:
> 	1. (see above). 2. Think about problem 3. Write down code :-)
> Severity:
> 	alpha:	can live with
> 	beta:	would rather not live with
> 	1.0:	serious limitation

Agree.

The thing is that this would be a good tool for people writing code,  
to see that their implementation is correct. Helps debug alot I guess.


> ---------------------------------------------------------------------- 
> -
> What:
> 	Random memory corruption
> Situation:
> 	Most live test runs have seen one or two core dumps
> 	that look like pointer fandango after en hour or so.
> 	FlexeLint does not spot anything.
> What needs to be done:
> 	Run with debugging malloc of some kind, try to find.
> Severity:
> 	alpha:	can live with if no choice
> 	beta:	would really hate to live with
> 	1.0:	showstopper, we should be able to run 24h

Agree.

> ---------------------------------------------------------------------- 
> -
> What:
> 	cache process restart
> Situation:
> 	management process does not restart automatically
> 	(for debugging convenience)
> What needs to be done:
> 	management process should restart cache process.
> 	Bonus: save snapshot of shmem and get traceback
> 	from gdb as well.
> Severity:
> 	alpha:	can live with
> 	beta:	can live with
> 	1.0:	should have

Agree.

I liked the shmem snap. It would help debugging alot I guess.

> ---------------------------------------------------------------------- 
> -
> What:
> 	RFC compliance audit
> Situation:
> 	We don't know how many small details we are missing.
> What needs to be done:
> 	Go through RFC(s) and sourcecode and mark up RFC(s)
> 	with "not relevant", "deliberate variance", "not implemented"
> 	and "OK".  (OK preferably listing relevant testcases)
> Severity:
> 	alpha:	can live with
> 	beta:	can live with
> 	1.0:	can live with

Bump to must/should have on 1.0?

We are gonna need this sooner rather than later. Ppl are gonna ask  
for this as soon as they start using Varnish in a prod. envorionment  
is my guess.

> ---------------------------------------------------------------------- 
> -
> What:
> 	storage_file.c allocation strategy
> Situation:
> 	we have seen pessimisal allocation patterns with
> 	degenerate trafic patterns.
> 	Real World traffic looks basically OK, but no detailed
> 	analysis done.  Missing stats an issue.
> What needs to be done:
> 	Carefully consider mitigation once we have analyzed
> 	the issue.
> Severity:
> 	alpha:	no issue
> 	beta:	no issue
> 	1.0:	no issue

Agree.

1.0 should have a way to dump the stats, so users reporting an error  
in that area, can give us a clue as to what is happening.

> ---------------------------------------------------------------------- 
> -
> Nice to have:
> 	log-tailer which only shows entries which pertain to
> 	sessions from given IP# range.  (possibly generic
> 	log-tailer option ?)

Agree.

> ---------------------------------------------------------------------- 
> -
> Nice to have:
> 	"pigs" logtailer which shows top clients and their
> 	requests in usable format.

Agree.

> ---------------------------------------------------------------------- 
> -
> Nice to have:
> 	log-tailer which writes httpd format.

I wanna bump up this one. Ppl may need it for stats.

> ---------------------------------------------------------------------- 
> -
> Nice to have:
> 	Better stats presentation on screen

Agree.

> ---------------------------------------------------------------------- 
> -
> Nice to have:
> 	Allow purging through HTTP interface.
> 	Doesn't take much actually

Agree.

> ---------------------------------------------------------------------- 
> -
> Nice to have:
> 	TAR storage method for loading static contents.

Agree.


I know that bumps upwards are gonna resolve on more work, but a httpd  
format log is really a must-have I think. Not for VG, but for others.
I am currently looking into seeing if I can program any C at all :)  
httpd logg would be a good place to start I guess. A mail will follow  
after this one about the logging code.


Anders Berg


> -- 
> 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.
> _______________________________________________
> varnish-dev mailing list
> varnish-dev at projects.linpro.no
> http://projects.linpro.no/mailman/listinfo/varnish-dev
>




More information about the varnish-dev mailing list