-
Notifications
You must be signed in to change notification settings - Fork 39
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
In our application we use Async, Atomic ConcurrentTLru implementation for caching very large 128MB string values.
And we found that these values remain referenced from inside the cache even after they are removed from it.
Investigation showed that after item is removed from dictionary it still remains in Lru queues until full cycle is performed and it's evicted out from cold queue.
The cycling logic also doesn't pay attention to the WasRemoved field of the item and continues to move it between queues.
My suggestion is:
- implement
IDisposableonAsyncAtomicFactoryand similar classes to dispose internal values and set them todefaulton remove from dictionary. - change cycling logic so that it will respect
WasRemovedfield and evict item from Lru ASAP.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working