NCache 4.6 - Online Documentation

Partitioned Cache

Figure 1. Partitioned Cache
Multiple Server Nodes: This topology has two or more servers. When any cache item is added in the cache, it is saved only to the relevant server node which means that every server node has a unique set of data.
Data Distribution: Data is distributed/partitioned among all server nodes on the basis of the hash code of cache key. A hash based distribution map is generated by the coordinator node which is then distributed to all server nodes.
Clients' Connections: Cache clients establish connections with every server node of the cluster. Data distribution maps are also shared with cache clients and cache clients are aware of the actual data distribution. When a cache client wants to send a request to cache servers, it first determines to which server node the key belongs to and sends the request accordingly on the basis of the distribution map.
One Hop Reads and Writes: Based on the distribution map, cache client adds/fetches cached item to/from the exact server node. In this manner, cache reads and writes both become one hop operation and there are no delays.
No Backups/Fault Tolerance: When any server node leaves the cluster, then data residing on that node is lost because there is no replica for any node. That's why there is no fault tolerance in terms of cached data.
Runtime Scalability: Server nodes can be added or removed at runtime whenever needed.
High Performance: Scaling the cache will not affect the performance of cluster cache for both reference and transactional data because read/write is a one hop operation in this topology. It will result in high performance in reads/writes without affecting the performance of cluster cache.
Storage Scalability: When more nodes are added in partitioned cache, storage capacity is increased because each partition in the cluster has a unique set of data.
Reliability: This topology is not fault tolerant because there is no backup of data and if any server node goes down, then data belonging to that partition is permanently lost.
State Transfer: When a node joins the cache cluster in Partitioned topology, existing nodes sacrifice a portion of their data, according to the hash based distribution, for the newly joined node. The newly joined node transfers its data share from existing nodes which results in an even distribution of the cached data among all cluster nodes. State transfer occurs in the background. Therefore during state transfer, user cache operation does not suffer.
See Also