[KULRICE-5357] update our caching solution for rice. Created: 12/Jul/11  Updated: 23/Feb/12  Resolved: 13/Sep/11

Status: Closed
Project: Kuali Rice Development
Component/s: Development, Version Compatibility
Affects Version/s: 2.0.0-m5
Fix Version/s: 2.0.0-m9, 2.0
Security Level: Public (Public: Anyone can view)

Type: Improvement Priority: Major
Reporter: Travis Schneeberger Assignee: Travis Schneeberger
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 2 weeks
Time Spent: Not Specified
Original Estimate: 2 weeks

Similar issues:
KULRICE-154improve kuali caching solution
KULRICE-12363Make priority of KIM cache messages configurable
KULRICE-5941Determine the proper way to handle client-side caching and eviction operations
KULRICE-13693Come up with an automated solution for link verification in the Rice portal
KULRICE-2764Deploy Rice standalone server to our test environments
KULRICE-7558Default sizes for Rice caches are too small and timeToLiveSeconds is not configured properly
KULRICE-2310Create cache of person data local to Rice
KULRICE-10558Review solution for KULRICE-10466 (Inquiry Link Issue)
KULRICE-7357Handle naming of JS files to avoid problems caused by cached JS files
KULRICE-276consolidate rice web content under common root or other permanent solution
Rice Module:
Rice Core
Application Requirement:
Rice
KAI Review Status: Not Required
KTI Review Status: Not Required

 Description   

see https://wiki.kuali.org/x/XgmWEg for more details...

oscache is a dead project. We need to provide a caching solution with rice 2.0 since most of the caching logic has been removed with version compatibility. The only classes used by rice that depend on oscache are:

RiceCacheAdministratorImpl
RiceDistributedCacheListener

The following classes are not not used by rice and will be deleted. If these caching classes are needed in the future we can use an ehcache/Spring 3.1 solution.

MethodCacheInterceptor - not used
MethodCacheNoCopyInterceptor - not used
MethodResultsCacheMonitor - not used
MethodResultsCacheNoCopyMonitor - not used
OSCacheMonitor - not used except by other not used items
ObjectCacheOSCacheImpl - not used
PersistenceCacheMonitor - not used



 Comments   
Comment by Rice-CI User (Inactive) [ 13/Jul/11 ]

Integrated in rice-trunk-nightly #116 (See http://ci.rice.kuali.org/job/rice-trunk-nightly/116/)
KULRICE-5357: removing unused oscache dep
KULRICE-5357: removing unused oscache classes
KULRICE-5357: removing unused oscache classes

Comment by Rice-CI User (Inactive) [ 11/Aug/11 ]

Integrated in rice-trunk-nightly #152 (See http://ci.rice.kuali.org/job/rice-trunk-nightly/152/)
KULRICE-5357: removing some caching
KULRICE-5357: removing some caching
KULRICE-5357: removing some caching
KULRICE-5357: removing some caching

Comment by Rice-CI User (Inactive) [ 13/Aug/11 ]

Integrated in rice-trunk-nightly #154 (See http://ci.rice.kuali.org/job/rice-trunk-nightly/154/)
KULRICE-5357: removing some caching....

Comment by Travis Schneeberger [ 17/Aug/11 ]

still need to:

[2:30:46 PM] Travis Schneeberger: I think I will then continue with the rest of the caching work on trunk which includes:

1) figure out how to test in a distributed infastructure
2) switch from java.util.concurrent to ehcache - DONE
3) remove old ohcache stuff
4) annotate all remote services with cache annotations (we will all do this)
5) create a simple mechanism to ignore cache flush calls

before I get ahead of myself though I would like to code review this stuff and review the design.....

Comment by Travis Schneeberger [ 17/Aug/11 ]

created a jira @ https://jira.springsource.org/browse/SPR-8620

Comment by Rice-CI User (Inactive) [ 20/Aug/11 ]

Integrated in rice-trunk-nightly #161 (See http://ci.rice.kuali.org/job/rice-trunk-nightly/161/)
KULRICE-5357: a rename

Comment by Rice-CI User (Inactive) [ 23/Aug/11 ]

Integrated in rice-trunk-nightly #164 (See http://ci.rice.kuali.org/job/rice-trunk-nightly/164/)
KULRICE-5357: adding queue capabilities to caching framework

Comment by Rice-CI User (Inactive) [ 25/Aug/11 ]

Integrated in rice-trunk-nightly #166 (See http://ci.rice.kuali.org/job/rice-trunk-nightly/166/)
KULRICE-5357: fixing javadoc
KULRICE-5357: tweaking exception handling
KULRICE-5357:
KULRICE-5357: fixing bug in cache flush, adding capability to restart flush task, added logic to shutdown flush task and scheduler
KULRICE-5357: switching to ehcache

Comment by Travis Schneeberger [ 25/Aug/11 ]

Notes from Code Review

  • Need to determine if spring expression language is operation on arguments or return types, didn't think argument names were stored in byte code
  • Does it only work if the jar is compiled with debugging on? Need to check this!
  • http://forum.springsource.org/showthread.php?105072-Cache-Abstraction-IllegalArgumentException-when-debug-symbols-off
  • Need to create a KRDOC jira so that we document that you must compile with debug symbols turned on for rice to work properly
  • Travis - it's spring's fault!
  • CacheProxy is only added if the interface (or one of it's parents) is actually using the Cachable interface
  • Eric - we need at least certain cache messages to go out asap after a transaction has committed
  • KSB currently has a way to queue up messages for a single transaction
  • could have different cache consistency settings, but how to configure those?
  • For now, let's implement a custom transaction synchronization for caching
  • @Travis - look at MessageSender and MessageSendingTransactionSynchronization
  • Unfortunately, can't have more than one "key" for eviction
  • right now you can only tell it to evict all entries
  • EHCache should not be a compile time dependency
  • see if we can specify this via the maven enforcer
Comment by Travis Schneeberger [ 25/Aug/11 ]

also document dev.mode=true is not valid for production

Comment by Rice-CI User (Inactive) [ 26/Aug/11 ]

Integrated in rice-trunk-nightly #167 (See http://ci.rice.kuali.org/job/rice-trunk-nightly/167/)
KULRICE-5357: moving some old caching classes
KULRICE-5357: moving some old caching classes

Comment by Travis Schneeberger [ 26/Aug/11 ]

will kill oscache soon.

Need to removing caching from EDLControllerFactory and make sure the EDLGlobalConfig is cache where it's creatd

Comment by Rice-CI User (Inactive) [ 27/Aug/11 ]

Integrated in rice-trunk-nightly #168 (See http://ci.rice.kuali.org/job/rice-trunk-nightly/168/)
KULRICE-5357: changes from code review.

Comment by Rice-CI User (Inactive) [ 30/Aug/11 ]

Integrated in rice-trunk-nightly #170 (See http://ci.rice.kuali.org/job/rice-trunk-nightly/170/)
KULRICE-5357: removing more caching
KULRICE-5357: bye bye oscache
KULRICE-5357: removing old caching logic
KULRICE-5357: changes from code review, removing unused code.

Comment by Rice-CI User (Inactive) [ 31/Aug/11 ]

Integrated in rice-trunk-nightly #171 (See http://ci.rice.kuali.org/job/rice-trunk-nightly/171/)
KULRICE-5357: forgot volatile
KULRICE-5357: recursion....oops
KULRICE-5357: initial cache admin stuff
KULRICE-5357: removing more caching
KULRICE-5357: removing more caching
KULRICE-5357: removing more caching

Comment by Rice-CI User (Inactive) [ 08/Sep/11 ]

Integrated in rice-trunk-nightly #179 (See http://ci.rice.kuali.org/job/rice-trunk-nightly/179/)
KULRICE-5357: more cache ui stuff, updating jquery since the older version caused errors in jstree
KULRICE-5357: a view of currently registered cache managers
KULRICE-5357: a view of currently registered cache managers
KULRICE-5357: making it possible to have "complex" options. This is required for the jstree plugin

Comment by Rice-CI User (Inactive) [ 13/Sep/11 ]

Integrated in rice-trunk-nightly #185 (See http://ci.rice.kuali.org/job/rice-trunk-nightly/185/)
KULRICE-5357: removing cancel button
KULRICE-5357: admin screen almost done

Comment by Travis Schneeberger [ 13/Sep/11 ]

There are a couple of improvements that could be made to the cache admin screen:

1) Not flushing individual Caches if the parent CacheManager is selected
2) Having a select all to select all CacheManagers

Unless you feel these are priorities I'll close out this jira.

I'll create a separate jira to create the proper kim permissions for this screen. I would guess this will have to be done for all the new screens in rice.

Comment by Rice-CI User (Inactive) [ 14/Sep/11 ]

Integrated in rice-trunk-nightly #186 (See http://ci.rice.kuali.org/job/rice-trunk-nightly/186/)
KULRICE-5357: making changes suggested of the krad team

Comment by Rice-CI User (Inactive) [ 15/Sep/11 ]

Integrated in rice-trunk-nightly #187 (See http://ci.rice.kuali.org/job/rice-trunk-nightly/187/)
KULRICE-5357: finished cache admin screens

Comment by Jessica Coltrin (Inactive) [ 23/Feb/12 ]

Closing since these items are now in the release notes.

Generated at Fri Apr 10 01:37:04 CDT 2020 using JIRA 6.1.5#6160-sha1:a61a0fc278117a0da0ec9b89167b8f29b6afdab2.