Based on the same techniques outlined in the {@link DefaultDataContainer}, this implementation always forces the collection of creation timestamps for entries. This means that {@link org.infinispan.container.entries.ImmortalCacheEntry}and {@link org.infinispan.container.entries.TransientCacheEntry} are never used, since only {@link org.infinispan.container.entries.MortalCacheEntry}and {@link org.infinispan.container.entries.TransientMortalCacheEntry} instances capture timestamps.
All gets, puts, etc are constant time operations.
Iteration incurs a O(N log(N)) cost since the timestamps are sorted first, and there is an added memory overhead in temporary space to hold sorted references. When sorting, this implementation does not use the millisecond granularity when ordering timestamps; instead it defaults to a 1-second granularity since the FIFO ordering does not need to be strict and the TimSort implementation used for sorting performs significantly better with minimal reordering offered by a coarser granularity.
@author Manik Surtani
@since 4.0