• Webinars
  • Docs
  • Download
  • Blogs
  • Contact Us
Show / Hide Table of Contents
  • Administrator's Guide
  • NCache Architecture
    • Cache Topologies
    • Cache Cluster
    • Local Cache
    • Cache Client
    • Client Cache
    • Data Load Balancing
    • Cache Server Backward Compatibility
    • Client Backward Compatibility
    • Eviction
    • Indexing
    • Runtime Data Sharing
    • Portable Data Types
    • Class Versioning
    • IP Binding with Multiple NICs
    • Graceful Node Down
    • Separate Cache Host Process
    • Self Healing Dynamic Clustering
  • Configuring Caches
    • Create Cache
      • Creating Local Cache
        • Create New Cache
        • Add Existing Cache
      • Creating Clustered Cache
        • Create New Cache Cluster
        • Add Existing Cache Cluster
    • Remove Cache
    • Clear Cache Contents
    • Adding Server Node in Cache Cluster
    • Removing Server Node from Cache Cluster
    • Configuring Basic Cache Settings
      • Cache Size
      • Cache Isolation Levels
      • Cache Data Expiration
      • Cache Data Format
    • Configuring Cache Cluster Settings
      • Ports
      • Operation Timeout
      • Static Replication Interval
      • Connection Retries
      • Retry Interval
    • Add Test Data to Cache
    • Deploy Providers
    • Configuring Query Indexes
    • Registering Classes for Compact Serialization
      • Registering Non-Generic Classes
      • Unregistering Non-Generic Classes
      • Registering Generic Classes
      • Registering Generic Classes Using Generic Type Handler
    • Registering Classes for Portable Data Sharing
    • Configuring Data Source Providers
      • Read-Through Provider
      • Write-Through Provider
      • Write-Through Provider for Write-Behind Operations
    • Configuring Cache Startup Loader
    • Configuring Cache Level Events
    • Configuring Cache Activity Events
    • Configuring Eviction Policy
    • Configuring Compression
    • Configuring Email Notifications
    • Binding Cluster and Client/Server IP with Multiple NICs
      • Binding Cluster with a Dedicated IP
      • Binding Client/Server with a Dedicated IP
    • Configuring Heartbeat
    • Configuring MapReduce
    • Configuring Communication Reliability
    • Auto Start Cache on Boot
    • Nagling
    • Dual Socket
    • Error Logging
    • Configuration Files
      • Client Side Configurations
        • Client Config
        • EFCaching Config
      • Server Side Configurations
        • Cache Config
        • Bridge Config
        • Security Config
      • Cache Server Configuration
  • Management Operations
    • Start Cache
    • Stop Cache
    • Restart Cache
    • Manage Cache Service on a Server Node
    • Apply Configuration
    • Hot Apply Configuration
    • Reset Configuration
    • Data Load Balancing
  • Configuring Cache Clients
    • Adding Client Node in Cluster
    • Removing Client Node from Cluster
    • Configuring Client Node Settings
    • Creating Client Cache
    • Enable Client Cache on Client Nodes
    • Disable Client Cache on Client Nodes
    • Removing Client Cache
    • Configuring Client Cache Settings
  • Configuring Security
    • Configuring Security for Cache Management
    • Configuring Security for Cache
    • Configuring Security for Client Nodes
    • Configuring Encryption for Cache
    • Configure SSL/TLS Encryption in NCache
  • Configuring Bridge for WAN Replication
    • Creating Clustered Bridge
    • Adding Clustered Caches to Bridge
    • Configuring Bridge Settings
    • Configuring Conflict Resolver
    • Changing Cache Syncronization Modes
    • Configuring Master Cache
    • Force State Transfer
    • Connect/Disconnect Cache in Bridge
    • Remove Cache from Bridge
    • Bridge Management
  • NCache on Docker
    • Using NCache Docker Images
    • Customize NCache Dockerfile
  • Monitoring NCache
    • Cache Counters
    • Monitoring Caches using NCache Manager
      • Changing Management Port of Cache Node
      • Configuring Counters to Display
      • Browse Cache Statistics
      • Cluster Health
      • Monitoring Cache Clusters using NCache Email Alerts
    • Monitoring Caches using NCache Monitor
      • Monitoring with Built-In Dashboard
      • Monitoring with Custom Dashboard
    • Monitoring Bridge using NCache Manager
    • Monitoring NCache using Windows PerfMon Tool
      • Monitoring Cache Server Counters Using PerfMon
      • Monitoring Cache Client Counters Using PerfMon
      • Monitoring Bridge Counters Using PerfMon
    • Logging in NCache
      • NCache Log Viewer
      • NCache Monitor Logging
      • Performance Counters Logging
      • Windows Event Logging
      • Email Notifications on NCache Events
      • Cache Server Logging
      • Client Side API Logging
      • Cache Event IDs
    • Troubleshooting NCache Monitoring
      • Computer Name Not Found
      • Diskperf Not Installed
      • No READ Access to the Perflib Subkeys
      • Unable to Connect to Remote Server
    • IPV6 Support
  • Upgrading NCache Versions
    • Live Upgrade NCache Version
    • Upgrade NCache Version Offline
  • Apply Windows Patches on NCache Server

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

Important

Make sure the cache is stopped before making any configuration changes.

  • Specify the Eviction Policy for a cache through 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 NCache service.
Warning

eviction-ratio=5% is equal to 5% of total cache size. Eviction is not recommended in case of sessions.

Back to top Copyright © 2017 Alachisoft