...
- Ian B. has added some APIs and implementations to the branch to support multiple reference caching
- Here are his notes about it which explain pretty clearly what it does
It is a simplified multiple reference cache.
Objects on the cache can either have forward or reverse dependencies.
When an item is added its dependencies are recorded, when an item is removed the dependencies are removed.
when an item is re-put, the dependencies are removed and the object updated and the dependencies updated.
Any cluster implementation of this interfae will automatically perform
cache operations over the whole cache, the consuming service should not
have to and should not perform any cluster wide invalidation, only
concerning itself with its own invalidations.
- Here are his notes about it which explain pretty clearly what it does
- The files that were added are as follows
- APIS
- org.sakaiproject.memory.api.MultipleReferenceCache.java
- Some exception classes
- IMPLS
- org.sakaiproject.memory.impl.ObjectDependsOnOthersCache.java
- org.sakaiproject.memory.impl.ObjectIsDependedOnByOthersCache.java
- net.sf.ehcache.distribution.* (fork of some parts of ehcache)
- org.sakaiproject.memory.impl.util.DependentPayload.java (util class)
- APIS
- This has not added any dependencies or spring beans
- The forked ehcache code is there to allow the replication to be turned off temporarily and then turned back on
Helpful links
- Sakai Session Clustering with Terracotta
- EhCache distributed caching documnetation
- Spring Modules caching docs - https://springmodules.dev.java.net/docs/reference/0.8/html_single/#cache
- Caching the result of methods using Spring and EHCache