cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gerhard Froehlich" <>
Subject RE: Adding Resource Monitor to Generators
Date Mon, 10 Dec 2001 14:45:48 GMT
>From: Berin Loritsch []
>Sylvain Wallez wrote:
>> Gerhard Froehlich a écrit :
>>>I started to implement the Resource Monitor into
>>>the caching process.
>>>One place are the Generators (FileGenerator, etc..), therefore
>>>I have to lookup up the Monitor component.
>>>Where shall I place the contextualize method in the Generator
>>>derivation tree:
>>>  AbstractGenerator
>>>    AbstractXMLProducer
>>>I ask, 'cause I don't want to rain in somebodies "Generator" party ;)
>> Gerhard,
>> I'm happy you start working on Monitors : reducing filesystem lookup is
>> a must-do to increase performance. But I have a few wonders about the
>> way to introduce them in the engine.
>> I didn't went deep in Monitors, but is it good to use an active monitor
>> ? From what I understand, an active monitor scans periodically (10 secs
>> in cocoon.xconf) all its resources.
>The period is configurable!  This is a very important concept.  In a
>development environment, it would probably be set as little as every
>minute or 5 minutes.  In a production environment, it would most likely
>be set to 30 minutes or possibly 8 hours.
>> This means that every 10 secs, Cocoon will scan *each and every* file
>> monitored since the engine startup, even those that are unfrequently
>> used. I'm afraid this will be worse than what we have today on large
>> sites... but tell me if I'm wrong !
>Your wrong!  It will only search the ones that are currently registered,
>AND the time is configurable.  For the unit test, it is set to 10 secs
>or lower so the unit test doesn't take for ever.

Yeah, right. That was only for personal testing. Can't wait 8 hours before that
baby loops ;)!

>> It seems to me that the main benefit of ActiveMonitor is for resources
>> that are systematically checked at each and every request : IMO, this
>> should be limited to configuration files and sitemaps.
>> For less-frequently used resources, wouldn't it be a better solution to
>> only call getLastModified() when the resource is actually used and the
>> time since the last call to getLastModified() is greater than the
>> refresh period ? This would be a kind of buffering in front of the
>> filesystem. Also, can't this be integrated directly in Source ?
>I would like to see Resource and Source merged.  Or at the _very_ least,
>Source extending Resource.

Where is the difference between Resource and Source in the Cocoon context?

>> Last point : your changes in ProgramGenerator make the assumption that
>> sources are files. This won't be true in unexpanded war files and will
>> very likely break the engine ;)
>> What do you (and others) think ?
>There is room for more Resource types.

Ok, getting a little bit confused, now. Do you mean something like a
MonitoredSource or something else. My first beginning was to implement
the Resource Monitor direct into Source. But I didn't, cause I wanted
to close to the problem domain slowly ;)(honestly it was more lack of
Now it's implemented like this:

this.monitor = (Monitor)this.componentManager.lookup(Monitor.ROLE);
URL configURL = new URL(source.getSystemId());
getLogger().debug("Configuration path=" + configURL.getFile());
FileResource file = new FileResource(configURL.getFile());

Just a thought!

>They just have not been written yet.


"Sorry, but my karma just ran over your dogma."

To unsubscribe, e-mail:
For additional commands, email:

View raw message