Type of the cache entry.
Whether GC is idle.
Number of managed entries.
Clear all managed entries.
Leaves entry without expiration, by un-managing it.
Manage entry expiration.
Register callback invoked when entry expires.
Notify GC about expiration change of the managed entry.
GarbageCollector which uses a binary min heap to keep entries that needs to be evicted.
Each heap node is represent by cache entry which contains expiration time.
Eviction timer is always synchronized with heap root and fires at expiration time of root entry. When it fires, will evict root and other nodes that have expiration time equal to root. After that, timer will fire again at the expiration time of the newest root.