r1100 - trunk/varnish-cache/bin/varnishd

phk at projects.linpro.no phk at projects.linpro.no
Wed Sep 20 11:00:20 CEST 2006


Author: phk
Date: 2006-09-20 11:00:20 +0200 (Wed, 20 Sep 2006)
New Revision: 1100

Modified:
   trunk/varnish-cache/bin/varnishd/cache_pool.c
Log:
When ditching sessions due to overflow, only ditch new sessions.



Modified: trunk/varnish-cache/bin/varnishd/cache_pool.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_pool.c	2006-09-20 08:44:27 UTC (rev 1099)
+++ trunk/varnish-cache/bin/varnishd/cache_pool.c	2006-09-20 09:00:20 UTC (rev 1100)
@@ -295,7 +295,15 @@
 	UNLOCK(&qp->mtx);
 
 	LOCK(&tmtx);
-	if ((VSL_stats->n_wrk_overflow >
+	/*
+	 * If we have too much in the overflow, and this is a new session
+	 * just drop it.  We do not drop sessions which were waiting for
+	 * a busy object, they will be cheap to serve from here and the
+	 * cleanup would be more complex to carry out than delivering
+	 * the result will be
+	 */
+	if (sp->obj == NULL &&
+	    (VSL_stats->n_wrk_overflow >
 	    (params->wthread_max * params->overflow_max) / 100)) {
 		VSL_stats->n_wrk_drop++;
 		UNLOCK(&tmtx);




More information about the varnish-commit mailing list