Jim Jagielski wrote:

On Aug 28, 2008, at 12:41 AM, Mladen Turk wrote:

Jess Holle wrote:
P.S. I'd also like to quiet attempts to recover workers from errors to a lower (and by default unlogged) logging level. The transition of a worker into an error state should certainly be logged, but logging every time we find it to still be in an error state seems to be excessive -- at least for a sparsely populated port bank use case.

Everything you said is fine with me. I just did a functional
logic via watchdog thread and two basic use cases (maintain
and keepalive). The keepalive is meant to deal with firewalls
that tends to cut inactive connections.
As far as I'm concerned feel free to extend the logic so
it can deal with error states more intelligently.

... and of course, the plan is to implement something or
all of this to mod_proxy, but using a different mechanism.
Many modules needs some sort of out of the request cycle
detached maintenance, so I'll add a common mpm maintenance
thread to lower down the resource usage.
Ummm... since this is regarding mod_proxy, all this should be on
the httpd-dev list, and not on the Tomcat dev list...

What is, or is not, included in mod_proxy is what the httpd dev
community decides :) :)
Agreed, but this is concerning *both* mod_jk and mod_proxy and I've been scolded for cross posting...

At the core, I'm looking for 2 things:

  1. Something to limit the maximum impact of having many dead workers
     under a load balancer on normal requests
         * Assuming there are live workers available, of course, i.e.
           the process of discovering that dead workers are still dead
           shouldn't overtly impact any normal request.
         * Sample situation: load balancing over 9 ports, many of which
           do not have an active Tomcat associated at the time.  If
           there is only one Tomcat alive every 'retry' seconds (in the
           mod_proxy case, same thing, but different parameters for
           mod_jk), a normal request is delayed by a period of
           8*dead-connection-latency.  That's neither necessary nor
           acceptable.
         * Possible solutions include having a background thread ping
           the health of workers rather than allowing normal requests
           to do so or limiting the number of workers any normal
           request will attempt to recover.
  2. Something to reduce the severity of log messages when discovering
     that a dead worker is still dead.
         * There is no need to fill the error logs with notices that a
           worker that has been dead is still dead.  This is good
           troubleshooting info and should be logged, but at a lower
           severity level that does not show up in the logs by default.
         * Depending on the solution to (1), this might just fall out
           of that.

If you believe we should start up a discussion on httpd dev as to how to solve these issues at this point that sounds great to me -- though we also need to solve them in mod_jk (as our current plan is to use mod_proxy_ajp for Apache 2.2 and we have no alternative but the jk/isapi connector for IIS).

--
Jess Holle

Reply via email to