cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ard Schrijvers" <a.schrijv...@hippo.nl>
Subject RE: cache
Date Wed, 05 Jul 2006 13:33:23 GMT

> Ard Schrijvers wrote:
> >> See: http://cocoon.apache.org/2.1/userdocs/concepts/caching.html
> > 
> > About that page, and then particularly
> > 
> > "The Default Caching Algorithm
> > 
> > The default algorithm uses a very easy but effective approach to
> > cache a request: The pipeline process is cached up to the most
> > possible point.
> > 
> > Therefore each component in the pipeline is queried by Cocoon if it
> > supports caching. Several components, like the file generator or the
> > xslt transformer support caching. However, dynamic components like
> > the sql transformer or the cinclude transformer do not. Let's have a
> > look at some examples:"
> > 
> > is just not right. The default algorithm for a pipeline cache either
> > results the entire pipeline OR nothing of it! This is important to
> > know when you are looking for performance flaws.
> 
> Are you absolutely sure of this?  I could swear I've seen 
> this working 
> as described.

Just try the following:

<map:pipeline type="caching">

<map:match pattern="foo">
	<map:aggregate element="root">
		<map:part src="cocoon:/cached"/>
	</map:aggregate>	
      <map:serialize type="xml"/>
</map:match>

<map:match pattern="cached">
	<map:generate src="sitemap.xmap"/>
      <map:serialize type="xml"/>
</map:match>

</map:pipeline>


Now calling /foo, results in two cached pipeline results (check EHDefaultStore keys with StatusGenerator)

Now, clear your cache, and test the following:

<map:pipeline type="caching">

<map:match pattern="foo">
	<map:aggregate element="root">
		<map:part src="cocoon:/cached"/>
	      <map:part src="cocoon:/uncached"/>
	</map:aggregate>	
      <map:serialize type="xml"/>
</map:match>

<map:match pattern="cached">
	<map:generate src="sitemap.xmap"/>
      <map:serialize type="xml"/>
</map:match>

<map:match pattern="uncached">
	<map:generate src="sitemap.xmap" type="jx"/> <!-- jx is uncacheable without a flow
trick -->
      <map:serialize type="xml"/>
</map:match>

</map:pipeline>

Running /foo again result in 1 single cached pipeline, namely cocoon:/cached. 

This seems to be consistent with what I wrote about the caching mechanism: A pipeline is cached
if, and only if, every single component is depends on is cacheable

Regards Ard

> 
> > 
> > Though, the above described behavior should be enabled with
> > CachingPointProcessingPipeline, but I never used it (I never had to
> > either, because the point untill a pipeline is cacheable I just move
> > into a seperate pipeline). Anyway, the wiki is incorrect.
> > 
> > Regards Ard
> > 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> For additional commands, e-mail: users-help@cocoon.apache.org
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Mime
View raw message