[PATCH] helpers on demand

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Fri, 04 Dec 2009 13:53:08 +1300

This converts the static configuration of helpers to run into a dynamic
range.

For some config backwards compatibility the maximum is kept as a single
integer first parameter to the *children directives.

Default setting changes:

  Instead of starting N helpers on startup and each reconfigure this
makes the default zero and the configured value a maximum cap.
  As suggested by Henrik the default maximum is raised from 5 to 20.
Except for dnsservers where the maximum is raised to the old documented
maximum of 32.
  (I'm of half a mind to remove that setting entirely for dnsserver)

Obsoleted settings:
  url_rewrite_concurrency
   - replaced by the concurrency=N option now available in all
*_children settings (including auth_param). To avoid compile problems
this directive had to be fully dropped.

  auth_param foo concurrency N
   - as above. However the option was able to be retained, as deprecated
for future removal as well.

Behavior changes:

The behavior is that whenever a request needs to use a helper and there
are none available immediately Squid tests to see if its okay to start a
new one. Then does so.

The "helpers dying too fast" warnings and Squid closing has had to be
modified as well. Squid will now not care about dying helpers if there
are more that startup=N active. If the death causes less than startup=N
to be running and is hit twice in less than 30 seconds will cause the
message and Squid to abort same as before.

NP: that with startup=0 (the new default) helpers dying before or after
their first use will not crash Squid. But may result is a loop of
hung/failed requests and will result in a great many helper-failed
warnings in cache.log.

If people like we can bump the startup default back to 1 to avoid all
that. Or add a special check to kill squid if helpers die during startup
and provide a clearer log message "Foo helper is dying before we can
finish starting it" etc.

TODO: the current patch has no way to dynamically decrease the number of
helpers. Only a reconfigure or helper dying can do that.

Amos

-- 
Please be using
   Current Stable Squid 2.7.STABLE7 or 3.0.STABLE20
   Current Beta Squid 3.1.0.15

Received on Fri Dec 04 2009 - 00:53:25 MST

This archive was generated by hypermail 2.2.0 : Fri Dec 04 2009 - 12:00:02 MST