Downloads Documentation Community Contribute Demo






Show Sidebar
Login | Register

Ticket #1107 (new task)

Opened 1 year ago

Last modified 1 year ago

Caching problems for large cohorts in LogicService

Reported by: tmdugan Assigned to: tmdugan
Priority: major Milestone:
Component: Logic Service Keywords:
Cc: Introductory Ticket: 0
Code Review Status:

Description (Last modified by bmckown)

Currently, the LogicService caching does not scale to large patient cohorts. The JVM throws out of memory exceptions. Investigate ehcache or other caching solutions. Otherwise, cache must be purged by size or information stored in table for later retrieval by keys in cache.

Change History

11/07/08 21:24:56 changed by bmckown

  • description changed.

A viable solution is to replace Map<LogicCacheEntryKey, Map<Integer, Result>> cache with an Ehcache. Make the Elements of the Ehcache use a LogicCacheEntryKey for key and a Map<Integer, Result> for value. LogicCache will instantiate a CacheManager to hold the Ehcache. The CacheManager should be initialized with a Configuration set from an ehcache.xml file.

The benefits are:
* You can have more than one CacheManager per VM; so LogicCache can have its own.
* You can configure the CacheManager to use a certain amount of memory and then overflow into disk storage. The Configuration can be set with detailed rules to manage this.
* Each Element on the Ehcache can be given its own time to live.