cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sylvain Wallez <sylv...@apache.org>
Subject Re: [QVote] Configurable default for sitemap reloading
Date Mon, 10 Oct 2005 14:14:18 GMT
Carsten Ziegeler wrote:

>Sylvain Wallez wrote:
>  
>
>>Makes sense. IIRC this was already mentioned in the past when we 
>>discussed "source store", i.e. a source-oriented front-end to the store 
>>that allows objects read from sources (stylesheets, sitemaps, forms, 
>>templates, etc) to be more memory-friendly by being kept in the store 
>>rather than in private caches.
>>
>>The reloading policy would then be implemented in this "source store" 
>>component, once for all components that use it. This allows also to 
>>centrally implement the reload delay that also exists on the sitemap, 
>>and which directs the system to check for modification only 
>>periodically, thus reducing the number of filesystem hits under load.
>>
>>Now this requires quite a number of changes, so let's keep a global 
>>"check-reload" for the sitemap and condiser source stores after 2.1.8.
>>
>>    
>>
>I'm talking of 2.2 only, so what should we do there? :)
>  
>

Ah, ok :-)

>Now, rethinking this and considering Max reply, it might make sense to
>allow reloads of the one kind in production but not for others to avoid
>the checking on each request (or the delayed check).
>
>So what about a global property:
>o.a.c.reloading=true|false
>and using a "sub" properties like
>o.a.c.reloading.sitemap and o.a.c.reloading.xslt and so on.
>  
>

Interesting idea. Thinking more to the source cache thing, I thing this 
component should be actually a provider for separate objects, as 
different components may use the same file in different ways. I'm 
thinking here to a bug I fixed a long time ago where XSP and 
XSLTProcessor used the same cache entry to store different objects 
associated to a logicsheet.

So the sub-category could also be used as an identifier of the cache store.

Let's explain with a few lines of code:

SourceStoreFactory ssf = 
(SourceStoreFactory)manager.lookup(SourceStoreFactory.ROLE);
this.sourceStore = ssf.createStore("sitemap");
...
Processor proc = this.sourceStore.get(source);
if (proc == null) {
    Processor proc = buildProcessor(source);
    this.sourceStore.store(source, proc);
}

The source store will then store in the real store an entry related to 
its name and the source's URI and validity, and automatically handle the 
reloading configuration and delay.

>The "sub" properties default to o.a.c.reloading unlike otherwise specified.
>
>The source store which we might have at some point can use this property
>as well. Clients of the source store always specify the "type" like
>sitemap or xslt
>  
>

Yes!

Sylvain

-- 
Sylvain Wallez                        Anyware Technologies
http://people.apache.org/~sylvain     http://www.anyware-tech.com
Apache Software Foundation Member     Research & Technology Director


Mime
View raw message