cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Melhem <>
Subject [PROPOSAL] "CachingPoint" Caching algorithm
Date Thu, 13 Jun 2002 11:20:03 GMT
Hi all,

I have started work on new caching algoritm which is refered to as
the "cachingPoint" alogrithm.

The developer can configer certain pipelines to use this alogrithm as
required. The cahingPoint algorithm is of best value when a pipeline uses lots
"cocoon-views" or selectors or contains drill-down functionality

The idea of cache points is instead of simply caching the longest
possible key in a given pipeline, we also strategically cache points along the way.

When building a pipeline, we mark as "cachepoint" the last component in
the pipeline if next component needs to be chosen from a set of
possible components (ie we come a cross a branch or fork in the process tree)

Tha advanatge of this algorithm is that common segments of a pipeline are cached
ready for reuse.

Perhaps the basic idea can be best illustrated with a very simple

Consider the following sitemap:

 <map:view name="content" from-label="content">
   <map:serialize type="xml"/>

 <map:match pattern="welcome">
   <map:generate src="samples.xml" label="content"/>
   <map:transform src="common/style/xsl/html/simple-samples2html.xsl"/>
   <map:serialize type="html"/>

For the the request:/welcome the default caching algorithm would cache a
single cache entry using key determined by the
generator+transformer+HTMLserializer: PCK:CCK:1file:CCK:3xsltCCK:5html

When we fire of the request:/welcome?cocoon-view=content, the default
algorithm would look up the cache for the key: PCK:CCK:1file:CCK:5xml
(determined by generator+XMLserializer) and find nothing. Even though
we are generating the exact same information, this information is not cached.

The proposed caching alagorithm would resolve this issue by caching along side
the full result, the result of the generator as well. This is because the
generator would be designated as a "cachepoint" in this case.

Feedback is welcome.

Best Regards,
Michael Melhem

To unsubscribe, e-mail:
For additional commands, email:

View raw message