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