> 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: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 

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

Reply via email to