Berin Loritsch wrote:

Berin Loritsch wrote:


The core reason for this approach was a performance/resource issue. With
a pooled component, we run into the problem of having several copies of
this component for the same request for some reason. In some ways this is
unavoidable. However the overhead of looking it up and releasing it multiple
times resulted in alot of overhead.


FYI, Fortress component pooling is *far* better than the ECM.  Much less
synchronization overhead, and the pool grows naturally under load and
cleans up after itself as load goes down.  It could get smarter, but for
now it is better to see how things are doing.

Also note that the pool sizes are instrumented for you so that you can
attach the Avalon Instrument client to your Cocoon server and watch the
pool sizes for your avalon components under load.  Really cool stuff.

Merlin uses the same pooling mechanism as Fortress, but I am not sure
if the pool sizes are instrumented yet.


Just for reference - Merlin 2.1 used the same pooling mechanism
as Fortress.  The released Merlin 3.0 does not provide pooled object
support.  The reason was (a) that the pool implementation was tied to the
kenel implementation and I wanted to rethink this in terms of establishing
a pool manager implementation component (which in turn requires some work
inside the kernel to support facility deployment), (b) parameterization
of pools needs to be declared at the <component> directive level, and
(c) there were technical issues with the pool/event/concurrency jars that
were making like painful.

That could be an improvement to Merlin to see in the near future.


I think we should be exposing instrumentable aspects via jmx.  This is
already in place within the Merlin kernel and a JMX manageble applicance
is the pipeline.  Both include active event motification of state change
which in turn can be handled by a JMX client.

Stephen.

--

Stephen J. McConnell
mailto:[EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to