Ard Schrijvers escribió:
You do not happen to know where the JCSDefaultStore went in
trunk..?? I read some stuff about it outperforming ehcache in almost every way (and that it might be easier to implement the eviction policy driven freeing of cachekeys).
WARINIG: I am far to be a cocoon expert. I guess Carsten may answer this question a long way better than me. But let me do a try digging into my memory:

Apache JCS based cocoon cache was introduced as a replacement for jisp [1], we dropped out jisp based cache because the jisp owner changed his license in the newer versions and there were some big flaws in the jisp version used in cocoon. At that time, JCS was not the cache nirvana, but we saw it as a nice fast repleacement, because it was under the same apache umbrella. JCS had some problems too (problems that I don't know if they are already fixed now - but I hope so. One of the problems with JCS is that his community is very small (very few developers - 3 or less), because JCS is the kind of projects that everybody wants to use and nobody wants to develop. You know. ;-)

It merely surprised me because I just read http://jakarta.apache.org/jcs/JCSvsEHCache.html, but of course, I did not measure it myself :-)
Thanks for the link. JCS 1.2.7 was used for the benchmark. IIRC, in cocoon the least used jcs version was 1.2.5. Based on my jcs experience, a 1.2.7 release is not just a simple bug fixing release, there are some enhancements. Hence a good idea try jcs 1.2.7 or a jcs newer version.
At the same time ehcache was emerging as a new kid on the cache block. Everybody talked about it, how faster ehcache is and so on. AFAIK, basically ehcache origin is a stripped down forked old version of Apache JCS . Thanks to some cocoon community request, ehcache community agreed to have a dual license using ASF and this allowed us to use his library in cocoon. This is how the ehcache got into cocoon as another cache implementation.

Few cocoon releases ago, due the (memory leaks?) problems in apache jcs base cache, the cocoon community decided to switch to ehcache as our default implementation. As part of the new idea to strip down cocoon to avoid confusing users, the JCS based cache support has been droppped out.

Now, given the current situation, I wonder if was a smart move to remove the jcs cache based cache implementation from cocoon at all. Perhaps we might keep it into our code as another implementation and let the user decide wich one use. Do you think makes sense to ask our community if we can continue supporting jcs-base cache?

I hear there is another very interesting cache implementation. It is called whirlycache[2], but there is no cocoon support yet. Perhaps makes sense to give him a try.** <https://whirlycache.dev.java.net/>

Quite a nice historical overview! I certainly consider it worthy to check out this 
whirlycache. In the first place, I like this principle that says "Disk overflow 
becomes a bad idea very quickly". We have sites around consuming multiple Gb of 
diskStore with ehcache, this afternoon I stumbled apon a site having 25.000+ cachekeys 
(combination of an old EHDefaultStore impl not implementing [EMAIL PROTECTED] though), 
etc etc. This in combination with the StoreJanitor trying to free memory from caches when 
low on memory, but the EHDefaultStore or JCSDefaultStore are not capable of doing this 
according the correct eviction policy, makes that for us the cache implementations have 
to many short comings. Turning overflow-to-disk to false for sites seem to let them run 
more stable! But then I could use MRUMemoryStore as well, and throw away ehcache. Another 
problem with ehcache is that you cannot set a limit to the number of keys in diskStore. 
This number can grow indefinetly.

I am going to check out if the wirlycache does not have this short comings.
It sounds great! Please share with us your experience with whirlycache. I hear some folks from Lenya already used it with very nice results. If this is the same for you, please consider to provide a patch to include it in our nice framework. ;-)

Many thanks in advance.

Best Regards,

Antonio Gallardo


Reply via email to