Ticket #1264 (closed clarification: fixed)

Opened 17 months ago

Last modified 16 months ago

ArticleAnnotationCache does not respect TTL

Reported by: russ Owned by: russ
Priority: high Milestone: 0.9.3_rc1
Component: ambra Version: 0.9.3
Keywords: Cc:

Description

when we upgraded to 0.9.2, some changes were made to the article XSL transform.

in order for those changes to appear on the sites, we needed to rebuild the transformed XML objects in AAC.

so we set eternal to false, and ttl to 6 hours on AAC and restarted ambra.

24 hours later, nothing had been evicted from the AAC cache

we wrote a jMeter script to remove the old cache entries with manageCaches.action, and articles were re-transformed correctly.

so for some reason AAC is ignoring the TTL setting.

some theories:

  • ehcache bug or misconfiguration
  • the replicated caches are causing TTL to fail somehow
  • ambra is updating the timestamps on cache object
  • ambra is doing something else bizarre

Change History

Changed 17 months ago by npeterson

  • owner changed from rich to wtoconnor
  • priority changed from unassigned to high
  • milestone set to 0.9.3_rc1

Changed 17 months ago by wtoconnor

  • status changed from new to assigned

Changed 17 months ago by wtoconnor

The cache is actually working as expected. An element in the cache will not be removed until either there is a reason to evict (memory etc) or someone tries to retrieve the element and it is expired.

Our cache manager uses a call that inspects the cache and returns all elements whether they are expired or not. Using a different call that only returns valid cache elements will show that the elements are not there.

Changed 17 months ago by wtoconnor

  • status changed from assigned to new
  • owner changed from wtoconnor to npeterson
  • type changed from defect to clarification

Changed 17 months ago by npeterson

  • owner changed from npeterson to rich

Changed 17 months ago by wtoconnor

If the method java.util.List getKeysWithExpiryCheck() is substituted for java.util.List getKeysNoDuplicateCheck() in the cache manager valid cache entry reporting results.

Changed 16 months ago by russ

  • owner changed from rich to russ

testing bill's theory that timeout is stored in cache object, so cache objects created in an "eternal" cache will never expire, even if a ttl is set later...

Changed 16 months ago by russ

  • status changed from new to closed
  • resolution set to fixed

confirmed

Note: See TracTickets for help on using tickets.