r1611 - trunk/varnish-cache/bin/varnishd

phk at projects.linpro.no phk at projects.linpro.no
Mon Jul 2 14:33:23 CEST 2007


Author: phk
Date: 2007-07-02 14:33:22 +0200 (Mon, 02 Jul 2007)
New Revision: 1611

Modified:
   trunk/varnish-cache/bin/varnishd/cache_center.c
Log:
Update the embedded dot-graph to include request/object visibility in
the various VCL methods.

Loose the state names, they're obvious in the source code.



Modified: trunk/varnish-cache/bin/varnishd/cache_center.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_center.c	2007-07-02 12:01:55 UTC (rev 1610)
+++ trunk/varnish-cache/bin/varnishd/cache_center.c	2007-07-02 12:33:22 UTC (rev 1611)
@@ -52,16 +52,8 @@
 DOT	shape=hexagon
 DOT	label="Request received"
 DOT ]
-DOT RECV [shape=plaintext]
-DOT PIPE [shape=plaintext]
-DOT LOOKUP [shape=plaintext]
-DOT HIT [shape=plaintext]
-DOT MISS [shape=plaintext]
-DOT PASS [shape=plaintext]
-DOT FETCH [shape=plaintext]
-DOT DELIVER [shape=plaintext]
 DOT ERROR [shape=plaintext]
-DOT start -> RECV [style=bold,color=green,weight=4]
+DOT start -> recv [style=bold,color=green,weight=4]
  */
 
 #include <stdio.h>
@@ -123,14 +115,20 @@
 DOT subgraph xcluster_deliver {
 DOT 	deliver [
 DOT		shape=ellipse
-DOT		label="Build & send header"
+DOT		label="Filter obj.->resp."
 DOT	]
-DOT	DELIVER -> deliver [style=bold,color=green,weight=4]
+DOT	vcl_deliver [
+DOT		shape=record
+DOT		label="vcl_deliver()|req.\nresp."
+DOT	]
 DOT	deliver2 [
 DOT		shape=ellipse
-DOT		label="Send object"
+DOT		label="Send hdr + object"
 DOT	]
-DOT	deliver -> deliver2 [style=bold,color=green,weight=4]
+DOT	deliver -> vcl_deliver [style=bold,color=green,weight=4]
+DOT	vcl_deliver -> deliver2 [style=bold,color=green,weight=4,label=deliver]
+DOT     vcl_deliver -> errdeliver [label="error"]
+DOT     errdeliver [label="ERROR",shape=plaintext]
 DOT }
 DOT deliver2 -> DONE [style=bold,color=green,weight=4]
  */
@@ -260,10 +258,9 @@
 DOT		shape=ellipse
 DOT		label="fetch from backend\n(find obj.ttl)"
 DOT	]
-DOT	FETCH -> fetch [style=bold,color=blue,weight=2]
 DOT	vcl_fetch [
-DOT		shape=box
-DOT		label="vcl_fetch()"
+DOT		shape=record
+DOT		label="vcl_fetch()|req.\nobj."
 DOT	]
 DOT	fetch -> vcl_fetch [style=bold,color=blue,weight=2]
 DOT	fetch_pass [
@@ -272,8 +269,8 @@
 DOT	]
 DOT	vcl_fetch -> fetch_pass [label="pass"]
 DOT }
-DOT fetch_pass -> DELIVER
-DOT vcl_fetch -> DELIVER [label="insert",style=bold,color=blue,weight=2]
+DOT fetch_pass -> deliver
+DOT vcl_fetch -> deliver [label="insert",style=bold,color=blue,weight=2]
 DOT vcl_fetch -> errfetch [label="error"]
 DOT errfetch [label="ERROR",shape=plaintext]
  */
@@ -350,15 +347,14 @@
  *
 DOT subgraph xcluster_hit {
 DOT	hit [
-DOT		shape=box
-DOT		label="vcl_hit()"
+DOT		shape=record
+DOT		label="vcl_hit()|req.\nobj."
 DOT	]
-DOT	HIT -> hit [style=bold,color=green,weight=4]
 DOT }
 DOT hit -> err_hit [label="error"]
 DOT err_hit [label="ERROR",shape=plaintext]
-DOT hit -> PASS [label=pass]
-DOT hit -> DELIVER [label="deliver",style=bold,color=green,weight=4]
+DOT hit -> pass [label=pass]
+DOT hit -> deliver [label="deliver",style=bold,color=green,weight=4]
  */
 
 static int
@@ -402,24 +398,23 @@
  *
 DOT subgraph xcluster_lookup {
 DOT	hash [
-DOT		shape=box
-DOT		label="vcl_hash()"
+DOT		shape=record
+DOT		label="vcl_hash()|req."
 DOT	]
 DOT	lookup [
-DOT		shape=ellipse
-DOT		label="obj in cache ?"
+DOT		shape=diamond
+DOT		label="obj in cache ?\ncreate if not"
 DOT	]
 DOT	lookup2 [
-DOT		shape=ellipse
+DOT		shape=diamond
 DOT		label="obj.pass ?"
 DOT	]
-DOT	LOOKUP -> hash [style=bold,color=green,weight=4]
 DOT	hash -> lookup [label="hash",style=bold,color=green,weight=4]
 DOT	lookup -> lookup2 [label="yes",style=bold,color=green,weight=4]
 DOT }
-DOT lookup2 -> HIT [label="no", style=bold,color=green,weight=4]
-DOT lookup2 -> PASS [label="yes"]
-DOT lookup -> MISS [label="no",style=bold,color=blue,weight=2]
+DOT lookup2 -> hit [label="no", style=bold,color=green,weight=4]
+DOT lookup2 -> pass [label="yes"]
+DOT lookup -> miss [label="no",style=bold,color=blue,weight=2]
  */
 
 static int
@@ -427,6 +422,8 @@
 {
 	struct object *o;
 
+	CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
+
 	if (sp->obj == NULL) {
 		WS_Reserve(sp->http->ws, 0);
 		sp->hash_b = sp->http->ws->f;
@@ -482,19 +479,23 @@
  *
 DOT subgraph xcluster_miss {
 DOT	miss [
-DOT		shape=box
-DOT		label="vcl_miss()"
+DOT		shape=ellipse
+DOT		label="filter req.->bereq."
 DOT	]
-DOT	MISS -> miss [style=bold,color=blue,weight=2]
+DOT	vcl_miss [
+DOT		shape=record
+DOT		label="vcl_miss()|req.\nbereq."
+DOT	]
 DOT	miss_ins [
-DOT		label="insert new object"
+DOT		label="obj.pass=true"
 DOT	]
-DOT	miss -> miss_ins [label="fetch",style=bold,color=blue,weight=2]
+DOT	miss -> vcl_miss [style=bold,color=blue,weight=2]
 DOT }
-DOT miss -> err_miss [label="error"]
+DOT vcl_miss -> err_miss [label="error"]
 DOT err_miss [label="ERROR",shape=plaintext]
-DOT miss_ins -> FETCH [style=bold,color=blue,weight=2]
-DOT miss -> PASS [label="pass"]
+DOT vcl_miss -> fetch [label="fetch",style=bold,color=blue,weight=2]
+DOT miss_ins -> pass
+DOT vcl_miss -> miss_ins [label="pass"]
 DOT
  */
 
@@ -533,18 +534,22 @@
  *
 DOT subgraph xcluster_pass {
 DOT	pass [
-DOT		shape=box
-DOT		label="vcl_pass()"
+DOT		shape=ellipse
+DOT		label="deref obj\nfilter req.->bereq."
 DOT	]
+DOT	vcl_pass [
+DOT		shape=record
+DOT		label="vcl_pass()|req.\nbereq."
+DOT	]
 DOT	pass_do [
 DOT		shape=ellipse
-DOT		label="create new object\n"
+DOT		label="create anon object\n"
 DOT	]
-DOT	PASS -> pass
-DOT	pass -> pass_do [label="pass"]
+DOT	pass -> vcl_pass
+DOT	vcl_pass -> pass_do [label="pass"]
 DOT }
-DOT pass_do -> FETCH
-DOT pass -> err_pass [label="error"]
+DOT pass_do -> fetch
+DOT vcl_pass -> err_pass [label="error"]
 DOT err_pass [label="ERROR",shape=plaintext]
  */
 
@@ -573,18 +578,22 @@
  *
 DOT subgraph xcluster_pipe {
 DOT	pipe [
-DOT		shape=box
-DOT		label="vcl_pipe()"
+DOT		shape=ellipse
+DOT		label="Filter req.->bereq."
 DOT	]
+DOT	vcl_pipe [
+DOT		shape=record
+DOT		label="vcl_pipe()|req.\nbereq\."
+DOT	]
 DOT	pipe_do [
 DOT		shape=ellipse
-DOT		label="build&send hdr\npipe until close"
+DOT		label="send bereq.\npipe until close"
 DOT	]
-DOT	PIPE -> pipe
-DOT	pipe -> pipe_do [label="pipe"]
+DOT	vcl_pipe -> pipe_do [label="pipe"]
+DOT	pipe -> vcl_pipe 
 DOT }
 DOT pipe_do -> DONE
-DOT pipe -> err_pipe [label="error"]
+DOT vcl_pipe -> err_pipe [label="error"]
 DOT err_pipe [label="ERROR",shape=plaintext]
  */
 
@@ -606,16 +615,15 @@
  *
 DOT subgraph xcluster_recv {
 DOT	recv [
-DOT		shape=box
-DOT		label="vcl_recv()"
+DOT		shape=record
+DOT		label="vcl_recv()|req."
 DOT	]
-DOT	RECV -> recv [style=bold,color=green,weight=4]
 DOT }
-DOT recv -> PIPE [label="pipe"]
-DOT recv -> PASS [label="pass"]
+DOT recv -> pipe [label="pipe"]
+DOT recv -> pass [label="pass"]
 DOT recv -> err_recv [label="error"]
 DOT err_recv [label="ERROR",shape=plaintext]
-DOT recv -> LOOKUP [label="lookup",style=bold,color=green,weight=4]
+DOT recv -> hash [label="lookup",style=bold,color=green,weight=4]
  */
 
 static int




More information about the varnish-commit mailing list