I have a feeling that ehcache allows to write your own replication agents. For invalidation only, its just the key that needs to be serializable. That might be enough.
http://ehcache.sourceforge.net/EhcacheUserGuide.html#id.s4.5.2
http://ehcache.sourceforge.net/EhcacheUserGuide.html#id.s20.1


Its also possible to set the Expiry per element.
http://ehcache.sourceforge.net/ EhcacheUserGuide.html#supportcachewideorelementbasedexpirypolicies

But that still requires that the body of the element is, and its also going to be required for most other cache implementations. serializable.

Did you still want a memcachd impl ?
Ian



On 18 May 2008, at 22:52, Kevin Brown wrote:

On Sun, May 18, 2008 at 2:12 PM, Ian Boston <[EMAIL PROTECTED]> wrote:

I have implemented a JCS cache and initially it looks a lot cleaner, but
then I started to get lots of errors with  the message

Caused by: org.apache.jcs.access.exception.CacheException:
org.apache.shindig.gadgets.http.HttpResponse
       at org.apache.jcs.access.CacheAccess.put(CacheAccess.java:285)
       at org.apache.jcs.access.CacheAccess.put(CacheAccess.java:249)
       at
org.apache.shindig.common.cache.ConfiguredCache.addElement (ConfiguredCache.java:54)

with full debug on there is no further information, (btw, it has to have
log4j configured and present, but perhapse that can be changed).

searching google reveals
http://markmail.org/message/
cd55im2xm455kxyg#query:org.apache.jcs.access.CacheAccess.put (CacheAccess.java)+page:1+mid:ofd5ljhpm4tfap47+state:results

"Your keys and values must be serializable.  Although
the JCS api suggests that you can cache any object,
you must only cache serializable objects.  This is a
known issue with no good solution.  "
(date 12 June 2006, version 1.3 from the list)

https://springmodules.dev.java.net/docs/reference/0.8/html/cache.html
appears to confirm this..........

so IMHO, if that is the case JCS is a non starter for this in memory use case, all descendant objects of whatever is put in the cache will have to be
serializable.


I'm not terribly fond of requiring this, either, but it seems to me that this would be a necessity for the distributed cache anyway. This was a big
part of the reason that I left the base interface as simply Key->Value
caching. This allows custom caches for specialization (as we have with
HttpCache) that can implement custom serialization / deserialization as needed. The only viable way to implement generic distributed caching would be to require that the objects extracted from or inserted into the cache be
able to support serialize and deserialize routines.

Another motivation for the generic cache interface is that we are going to need a few different types of caches in the near future -- simply doing HTTP
caching is insufficient. Cases where we'll want caching:

- Cached GadgetSpec objects (to avoid performance problems with rewritten
content)
- Cached blobs (because rewriting / caja is expensive)

I'm sure there will be others as well.



Ian



On 18 May 2008, at 20:38, Henning Schmiedehausen (JIRA) wrote:


[ https://issues.apache.org/jira/browse/SHINDIG-279? page=com.atlassian.jira.plugin.system.issuetabpanels:comment- tabpanel&focusedCommentId=12597834#action_12597834
]

Henning Schmiedehausen commented on SHINDIG-279:
------------------------------------------------

Uhm, as a "default, this is how a cache should look like" implementation, this is likely to be overkill. And it drags in another dependency which in turn might drag in others. I'd say that the shindig core itself should be as lean as possible. An ehcache based, production-ready cache is nice but is it needed to get started? Does it add complexity that is not needed to get the
sample container running?

An Apache project need not to have an preference towards fellow Apache projects. EHCache is fine, as long as the license is compatible (which I believe it is). We should never sacrifice technical advantages just for the sake of "using another Apache project" but judge all projects based on
technical merit and then decide.

 Configurable and clusterable cache for Gadgets server
-----------------------------------------------------

               Key: SHINDIG-279
URL: https://issues.apache.org/jira/browse/ SHINDIG-279
           Project: Shindig
        Issue Type: Improvement
        Components: Gadget Rendering Server (Java)
          Reporter: Ian Boston
       Attachments: SHINDIG-279.patch


If the the Gadgets server is going to perform caching, then a
configurable cache that has all the features that you might expect in production. Attached is a patch to put ehcache behind the Cache interface and introduce a ShindigCacheManager, that registers with JMX for statistics
and management.
The patch is fully integrated into the gadgets server guice config, with
tests for each class. It also appears to startup Ok.


--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.




Reply via email to