>From: Berin Loritsch [mailto:[EMAIL PROTECTED]]
>
>Sylvain Wallez wrote:
>
>>
>> Gerhard Froehlich a écrit :
>>
>>>Hi,
>>>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:
>>>
>>>ComposerGenerator
>>>  AbstractGenerator
>>>    AbstractXMLProducer
>>>
>>>?
>>>
>>>I ask, 'cause I don't want to rain in somebodies "Generator" party ;)
>>>
>>>Cheers
>>>Gerhard
>>>
>>>
>> 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.
>
>
>AND XSPs
>
>
>
>> 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
knowledge).
Now it's implemented like this:

<code>
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());
file.addPropertyChangeListener(this);
monitor.addResource(file);
</code>

Just a thought!

>They just have not been written yet.
>

  Gerhard

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



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

Reply via email to