r2559 - trunk/varnish-cache/bin/varnishd

phk at projects.linpro.no phk at projects.linpro.no
Fri Mar 7 12:13:12 CET 2008


Author: phk
Date: 2008-03-07 12:13:11 +0100 (Fri, 07 Mar 2008)
New Revision: 2559

Modified:
   trunk/varnish-cache/bin/varnishd/cache_backend.c
   trunk/varnish-cache/bin/varnishd/cache_hash.c
   trunk/varnish-cache/bin/varnishd/cache_session.c
   trunk/varnish-cache/bin/varnishd/heritage.h
   trunk/varnish-cache/bin/varnishd/mgt_param.c
Log:
Split the http_workspace into sess_workspace and obj_workspace, so they
can be tuned separately.


Modified: trunk/varnish-cache/bin/varnishd/cache_backend.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_backend.c	2008-03-07 11:04:51 UTC (rev 2558)
+++ trunk/varnish-cache/bin/varnishd/cache_backend.c	2008-03-07 11:13:11 UTC (rev 2559)
@@ -230,7 +230,7 @@
 	if (bereq != NULL) {
 		CHECK_OBJ(bereq, BEREQ_MAGIC);
 	} else {
-		len =  params->mem_workspace;
+		len =  params->sess_workspace;
 		bereq = calloc(sizeof *bereq + len, 1);
 		if (bereq == NULL)
 			return (NULL);

Modified: trunk/varnish-cache/bin/varnishd/cache_hash.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_hash.c	2008-03-07 11:04:51 UTC (rev 2558)
+++ trunk/varnish-cache/bin/varnishd/cache_hash.c	2008-03-07 11:13:11 UTC (rev 2559)
@@ -88,7 +88,7 @@
 	} else
 		CHECK_OBJ_NOTNULL(w->nobjhead, OBJHEAD_MAGIC);
 	if (w->nobj == NULL) {
-		st = STV_alloc(sp, params->mem_workspace);
+		st = STV_alloc(sp, params->obj_workspace);
 		XXXAN(st);
 		assert(st->space > sizeof *w->nobj);
 		w->nobj = (void *)st->ptr; /* XXX: align ? */

Modified: trunk/varnish-cache/bin/varnishd/cache_session.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_session.c	2008-03-07 11:04:51 UTC (rev 2558)
+++ trunk/varnish-cache/bin/varnishd/cache_session.c	2008-03-07 11:13:11 UTC (rev 2559)
@@ -289,7 +289,7 @@
 		 * need to cache it locally, to make sure we get a
 		 * consistent view of it.
 		 */
-		u = params->mem_workspace;
+		u = params->sess_workspace;
 		sm = malloc(sizeof *sm + u);
 		if (sm == NULL)
 			return (NULL);
@@ -346,7 +346,7 @@
 	    sp->addr, sp->port, sp->t_end - b->first,
 	    b->sess, b->req, b->pipe, b->pass,
 	    b->fetch, b->hdrbytes, b->bodybytes);
-	if (sm->workspace != params->mem_workspace) {
+	if (sm->workspace != params->sess_workspace) {
 		VSL_stats->n_sess_mem--;
 		free(sm);
 	} else {

Modified: trunk/varnish-cache/bin/varnishd/heritage.h
===================================================================
--- trunk/varnish-cache/bin/varnishd/heritage.h	2008-03-07 11:04:51 UTC (rev 2558)
+++ trunk/varnish-cache/bin/varnishd/heritage.h	2008-03-07 11:13:11 UTC (rev 2559)
@@ -85,7 +85,8 @@
 	unsigned		overflow_max;
 
 	/* Memory allocation hints */
-	unsigned		mem_workspace;
+	unsigned		sess_workspace;
+	unsigned		obj_workspace;
 
 	/* Acceptor hints */
 	unsigned		sess_timeout;

Modified: trunk/varnish-cache/bin/varnishd/mgt_param.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/mgt_param.c	2008-03-07 11:04:51 UTC (rev 2558)
+++ trunk/varnish-cache/bin/varnishd/mgt_param.c	2008-03-07 11:13:11 UTC (rev 2559)
@@ -495,13 +495,21 @@
 		"number of worker threads.  ",
 		EXPERIMENTAL,
 		"3", "requests per request" },
-	{ "http_workspace", tweak_uint, &master.mem_workspace, 1024, UINT_MAX,
-		"Bytes of HTTP protocol workspace allocated. "
+	{ "sess_workspace", tweak_uint, &master.sess_workspace, 1024, UINT_MAX,
+		"Bytes of HTTP protocol workspace allocated for sessions. "
 		"This space must be big enough for the entire HTTP protocol "
 		"header and any edits done to it in the VCL code.\n"
 		"Minimum is 1024 bytes.",
 		DELAYED_EFFECT,
 		"8192", "bytes" },
+	{ "obj_workspace", tweak_uint, &master.obj_workspace, 1024, UINT_MAX,
+		"Bytes of HTTP protocol workspace allocated for objects. "
+		"This space must be big enough for the entire HTTP protocol "
+		"header and any edits done to it in the VCL code while it "
+		"is cached.\n"
+		"Minimum is 1024 bytes.",
+		DELAYED_EFFECT,
+		"8192", "bytes" },
 	{ "sess_timeout", tweak_timeout, &master.sess_timeout, 0, 0,
 		"Idle timeout for persistent sessions. "
 		"If a HTTP request has not been received in this many "




More information about the varnish-commit mailing list