Configuring 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 cache reaches its maximum storage limit and eviction is turned off, items are neither evicted nor added to the cache any further.
An eviction scheme is used to select the objects that need to be removed from 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. User can change 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 lowest counter number are evicted first. Here too a random selection is made between two objects with 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 case of two objects with the same time stamp, a random selection is made.
- Priority Based Eviction
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 cache. Objects with lower cost are removed before objects with higher cost. Client application can choose from a list of priorities that is predefined (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.
Using NCache Manager
Click on the cache name in Cache Explorer to open cache settings.
Go to the Policies tab.
Uncheck the Turn off Eviction check box.
Select the Eviction Policy from drop down list.
If you have selected the Priority based eviction, then Default Priority can also be changed in the drop down list.
Change the Eviction Percentage if required.
Right click on the cache name in Cache Explorer and select Apply Configuration option.
Manually Editing NCache Configuration
For Community Edition, you can manually edit config.ncconf and client.ncconf located at %NCHOME%/config.
Make sure Cache Host Process is stopped before making any configuration changes. If it is not stopped and the changes are made, kill the Cache Host process and then start it.
- Specify the Eviction Policy for a cache through config.ncconf by adding the
<cache-settings ...> <eviction-policy enabled="True" default-priority="normal" policy="priority" eviction-ratio="5%"/> </cache-settings>
- Once changes are made, start the Cache Host process.
eviction-ratio=5% is equal to 5% of total cache size. Eviction is not recommended in case of sessions.