• 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

Cache Client

Cache Clients are lightweight modules through which cache applications can connect to hosted cache servers.

TCP Based communication: Cache client connects to the cache server using TCP sockets. Cache client opens a persistent connection with the cache server so when it is disconnected due to network failure, it always reconnects with the cache server.

No Change in API: For both local and remote connections, API for cache operations does not change.

Data Serialization: Data to be added needs to be serializable. Serialization is performed in cache client.

Data Compression: Compression is configurable. If enabled, serialized data is compressed in cache client.

Data Encryption: Encryption is also configurable. If enabled, data is encrypted after compression in cache client. NCache supports AES and 3DES encryption.

Request Timeout: Timeout for synchronous cache operations like Add/Insert can be configured, if no response is received within configured time, exception will be thrown. Default operation timeout is 60 seconds. This request timeout should always be higher than cluster operation timeout.

Cache Server Information: Cache clients require server information in order to establish connection. This cache server information can be provided in two ways, either through CacheInitParams or through client configurations (client.ncconf).

Add/Remove Node: If any node is added or removed in cache cluster, cache client will also add/ remove server information to its server list. In case of fail over, client will automatically connect to the newly joined node.

Fail Over: In case a server goes down, cache client seamlessly establishes connection with the next available server. if none of the server is available, e.g., due to network failure, cache client keeps on trying to establish connection with the server in background. When a server again becomes available, it immediately connects to it and application can resume its activity with the cache. In partition and partitioned-replica cache topology, cache client maintains connection with every cache server. In case cache client is unable to connect with some of the server(s), it executes cache requests through other available cache servers. Meanwhile, it keeps trying to establish connection with the server in background.

Connection Retry Interval and Retry Count: When an application executes any cache operation through cache client and no connection is available, then cache client tries to establish the connection. The connection establishment process tries to establish connection for a configurable number of retries. The interval between two consecutive retries can be configured. Meanwhile, application thread waits for connection establishment. When retries are over and cache client is unable to connect to any of the cache servers, then application request is considered as failed and an exception is thrown to the client application.

Load Balancing: Cache client is topology aware and it behaves according to topology. In replicated cache cluster, clients are load balanced among cache servers, if any node joins/leaves the existing replicated cluster, load is re-shuffled.

Awareness of Data Distribution: In partition and partitioned-replica cache, client is aware of data distribution and establishes connection with all cache servers. Data distribution approach has the following advantages:

  1. Operation is one-hop, which results in a higher throughput.

  2. Cache requests are truly balanced among cache servers and no single server is overwhelmed.

Back to top Copyright © 2017 Alachisoft