-
Enhancement
-
Resolution: Done
-
Major
-
None
-
None
Today passivation is very strict and requires that whenever an entry is in memory that it is also not in the store and vice versa. This is beneficial for supposedly reducing usage in the store, but comes at a heavy cost. Every time an entry is loaded from a store or every time it is written to it must be removed for the store, even when it doesn't exist in the latter case. This can cause a lot of updates to the underlying store which can be orders of magnitude slower than in memory.
This JIRA is to change it so that entries are not removed from the store on load or when an entry is updated in memory. This can save a lot of remove calls to the underlying store. Thus the store is only written to on eviction, removal or when the cache stops.
The actual changes to code should be pretty small, mostly removals, but tests may require a lot more changes to all pass.