Idea: Caching in Sling

2014-07-29 Thread Ben Zahler
Hi all,

We are considering to implement a resource-based caching in Sling.

I have found some efforts to do something similar in the past, but they all 
seem to have been either abandoned or do something different from what we have 
in mind.

So it would be great to get some feedback if it this has been tried before and 
was given up or if our idea is just not what the Sling-world is waiting for.

This is what our Sling-Cache would do:

-   deliver sling resources from cache based on an exact path

-   deliver sling resources from cache for a subtree of the repository

The following scenarios would benefit from such a cache:

-   navigation components that are expensive to calculate and are identical 
for whole subtrees of a site

-   cacheable components on non-caheable pages

-   CQ use cases with dispatcher caching invalidate the large sections or 
the whole cache. After an invalidation, for a short time all traffic hits 
CQ/Sling. With resource based caching, this could be improved, allowing Sling 
to scale better.

Of course we would create an open-source implementation of our idea, caching 
either in memory or in the repository itself and leave room for other 
implementations with external caches.

So is this an idea you would love to see implemented or is it rather something 
that you deem unnecessarily complex?

Thanks for any feedback!

Cheers,
Ben Zahler

Inside Solutions AG | Bahnhofplatz 11 | 4410 Liestal | Schweiz
Telefon: +41 61 551 00 40 | Direkt: +41 61 551 00 43
http://www.inside-solutions.chhttp://www.inside-solutions.ch/


Re: Idea: Caching in Sling

2014-07-29 Thread Nicolas Peltier
Hi Ben,

Jackrabbit used to come with bundle cache which does exactly what you say, not 
knowing anything about the tree structure. And that stupidity is its strength: 
no need for a smart developer
to do pin point configuration of a tree or a single path. Things that are 
really used a lot were cached, the only configuration you do is on the size of 
the cache. I’m pretty sure similar mechanism exists with oak.

Now helping the stupid persistence caching by caching at the “application” 
layer things you, as an application developer, know they will be used a lot is 
always a good idea. Not sure this needs a framework though.

Nicolas

On 29 Jul 2014, at 08:15, Ben Zahler ben.zah...@inside-solutions.ch wrote:

 Hi all,
 
 We are considering to implement a resource-based caching in Sling.
 
 I have found some efforts to do something similar in the past, but they all 
 seem to have been either abandoned or do something different from what we 
 have in mind.
 
 So it would be great to get some feedback if it this has been tried before 
 and was given up or if our idea is just not what the Sling-world is waiting 
 for.
 
 This is what our Sling-Cache would do:
 
 -   deliver sling resources from cache based on an exact path
 
 -   deliver sling resources from cache for a subtree of the repository
 
 The following scenarios would benefit from such a cache:
 
 -   navigation components that are expensive to calculate and are 
 identical for whole subtrees of a site
 
 -   cacheable components on non-caheable pages
 
 -   CQ use cases with dispatcher caching invalidate the large sections or 
 the whole cache. After an invalidation, for a short time all traffic hits 
 CQ/Sling. With resource based caching, this could be improved, allowing Sling 
 to scale better.
 
 Of course we would create an open-source implementation of our idea, caching 
 either in memory or in the repository itself and leave room for other 
 implementations with external caches.
 
 So is this an idea you would love to see implemented or is it rather 
 something that you deem unnecessarily complex?
 
 Thanks for any feedback!
 
 Cheers,
 Ben Zahler
 
 Inside Solutions AG | Bahnhofplatz 11 | 4410 Liestal | Schweiz
 Telefon: +41 61 551 00 40 | Direkt: +41 61 551 00 43
 http://www.inside-solutions.chhttp://www.inside-solutions.ch/



Re: Idea: Caching in Sling

2014-07-29 Thread Ruben Reusser

Ben,

we chose a bit of a different approach and added html caching for CQ a 
while back


http://www.headwire.com/svn/projects/cqbpcache/trunk/cqbpcache/

basically,we use a tag that allows you to monitor changes in a path and 
cache the html accordingly until a node in the path (or one if its 
subnodes) changes.


Feel free to try it out, feedback welcome

Ruben

On 7/28/2014 11:15 PM, Ben Zahler wrote:

Hi all,

We are considering to implement a resource-based caching in Sling.

I have found some efforts to do something similar in the past, but they all 
seem to have been either abandoned or do something different from what we have 
in mind.

So it would be great to get some feedback if it this has been tried before and 
was given up or if our idea is just not what the Sling-world is waiting for.

This is what our Sling-Cache would do:

-   deliver sling resources from cache based on an exact path

-   deliver sling resources from cache for a subtree of the repository

The following scenarios would benefit from such a cache:

-   navigation components that are expensive to calculate and are identical 
for whole subtrees of a site

-   cacheable components on non-caheable pages

-   CQ use cases with dispatcher caching invalidate the large sections or 
the whole cache. After an invalidation, for a short time all traffic hits 
CQ/Sling. With resource based caching, this could be improved, allowing Sling 
to scale better.

Of course we would create an open-source implementation of our idea, caching 
either in memory or in the repository itself and leave room for other 
implementations with external caches.

So is this an idea you would love to see implemented or is it rather something 
that you deem unnecessarily complex?

Thanks for any feedback!

Cheers,
Ben Zahler

Inside Solutions AG | Bahnhofplatz 11 | 4410 Liestal | Schweiz
Telefon: +41 61 551 00 40 | Direkt: +41 61 551 00 43
http://www.inside-solutions.chhttp://www.inside-solutions.ch/