Cache Eviction Policy
If a cache reaches its maximum storage limit and eviction is turned on, the specified ratio of items will be evicted to make space for new objects. On the other hand, if the cache reaches its maximum storage limit and eviction is turned off, items are neither evicted nor added to the cache any further.
Important
Ensure the cache stops before making any configuration changes.
Cache eviction scheme is used to select the objects that need to be removed from the cache. A particular eviction policy can be selected at the creation time but once it is set it cannot be altered in the running cache. Users can change the eviction policy after creating a cache only if it is not running. Three types of Eviction Policies are provided by NCache:
- Least Frequently Used
In this scheme, a counter that counts the access made to an object is used. At the time of eviction objects with the lowest counter number are evicted first. Here too a random selection is made between two objects with the same counter.
- Least Recently Used
This eviction scheme associates a timestamp with all objects. This timestamp is updated each time the object is accessed. When evicting, objects with the oldest timestamp are picked first. In the case of two objects with the same time stamp, a random selection is made.
- Priority Based Eviction
Note
This feature is also available in NCache Professional.
This is the default eviction policy and has the same mechanism as LFU with the addition of a relative cost that is associated with an object at the time of its addition to the cache. Objects with lower cost are removed before objects with higher cost. The client application can choose from a predefined list of priorities (Low, Below Normal, Normal, Above Normal, High, and Not Removable). In case a priority is not chosen, it is set by default as Normal.
These eviction policies for a cache can be specified in one of the following two ways.
Cache Eviction Using the NCache Management Center
Launch the NCache Management Center by browsing to http://localhost:8251 or
<server-ip>:8251
on Windows and Linux.In the left navigation bar, click on Clustered Caches or Local Caches, based on the cache server to start. Against the cache name, click on View Details.
This opens up the detailed configuration page for the cache.
In the Overview tab, click on the button.
Check the Enable Eviction box.
Select the Policy from the drop-down list.
If you have selected Priority based eviction, then Default Priority can also be changed in the drop-down list.
Change the Percentage if required.
- Click on to save the cache configuration.
Manually Editing NCache Configuration
- Specify the Eviction Policy for a cache through the config.ncconf by adding the
<eviction-policy>
tag under<cache-settings>
:
<cache-settings ...>
<eviction-policy enabled="True" default-priority="normal" policy="priority" eviction-ratio="5%"/>
</cache-settings>
- Once changes are made, start the cache and restart the NCache service.
Warning
The eviction-ratio=5%
is equal to 5% of the total cache size. Eviction is not recommended in case of sessions.