• New Feature
  • Status: Closed
  • 1 Critical
  • Resolution: Fixed
  • nadeem
  • Reporter: steve
  • November 11, 2008
  • 0
  • Watchers: 0
  • December 16, 2008
  • December 08, 2008



Create a tim to cleanly do expiration in a 16 node test.

We need to meet and discuss requirements.


Alex Miller 2008-11-17

I had a hackfest Friday night and got this pretty far along. I’ve basically put together a CHM + a simplified version of the eviction logic from Ehcache. One nice effect was that I was able to isolate the evictor from the map with just a simple EvictableMap interface.

Thus, the storage map is separated from the eviction and also to some degree from how expiration is defined. This is still in flux a bit but so far that seems like a promising design split (storage, eviction, expiration).

Alex Miller 2008-12-08

This has been added to the forge in tim-map-evictor. It consists of:

1) An Evictor that works on something implementing a relatively simple Evictable interface. The Evictor handles both TTI and TTL (or both or neither) style eviction. It is a rip off of our Ehcache evictor and is designed to be tolerant in the face of some or all L1 node crashes and also to minimize faulting during eviction. 2) A DistributedMap interface that is basically like a Map (but doesn’t formally implement the interface). Will talk more about this. 3) An implementation of DistributedMap that marries a CHM and the Evictor to give you a very basic cache where items can expire.

This implementation is now being used in the Examinator for user registration codes, password reset codes, and the exam cache.