cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sylvain Wallez <>
Subject Re: [IMP] Performance problems with TraxTransformer
Date Wed, 29 Oct 2003 18:38:09 GMT
Nathaniel Alfred wrote:

>Checking all dependencies sounds first to be the right thing to do but it can introduce
a new performance bottleneck.  Just think of a well structured hierarchy of stylesheets stored
on a filer, where now the cache validity check requires dozens of NFS-stat calls.
>Caching on a production server is important but there must be also a possibility to flush
the cache short of restarting the server. May I suggest to extend the TraxTransformer configuration
to allow specifying a touchfile whose filestamp is checked for the validity mechanism.


It would be better and more system-wide consistent to have a single 
global setting used by every reloadable component (xslt, sitemap engine, 
i18n transformer, woody forms, flowscript, etc) to check if it should 
check for modifications the resources it depends on.

Otherwise, we will end up with every component defining its own way of 
being configured for this behaviour and lead to a configuration nightmare.

This information could e.g. be placed in the Avalon context. Note that 
it's not far from the "running modes" that have been mentioned several 
times in the past.

This setting could actually be a delay used to ensure that sources are 
checked only once per given period of time. E.g. checking only every 
minute on a production system is perfectly acceptable. A simple Validity 
wrapper easily does the trick.

All this can be implemented only once with 
SourceUtil.getDelayedValidity(Context, Validity) returning the Validity 
object that should actually be used.

>In production one can then use a global touchfiles to flush the cache manually whenever
there might have been an update of a stylesheet.  If needed, a finer granularity can be obtained
by using application specific touchfiles.
>If the touchfile is not specified, it defaults to the root stylesheet - that is the effect
of Carsten's current implementation.

You already have a global touch file which is cocoon.xconf, or web.xml 
if you also want to reload the classes.


Sylvain Wallez                                  Anyware Technologies 
{ XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }
Orixo, the opensource XML business alliance  -

View raw message