Alachisoft NCache Enterprise 4.9

NCache is a 100% Native .NET Open Source distributed cache (released under Apache License, Version 2.0). NCache provides an extremely fast and linearly scalable distributed cache that caches application data and reduces expensive database trips. Use NCache to remove performance bottlenecks related to your data storage and databases and scale your .NET and Java applications to extreme transaction processing (XTP).

NCache is an extremely fast in-memory distributed cache. It is much faster than going to the database to read data. NCache provides sub-millisecond response times to its clients.

This speed comes from a number of reasons. First, NCache is an in-memory distributed cache and does not have to transform data from rows to objects and it simply return objects quickly.

Second, NCache can keep the cache close to the application in the form of Client Cache. Client Cache can even be InProc to the client application while at the same time synchronizing with the clustered cache.

Linear Scalability
Linear ScalabilityRelational databases are unable to scale out and therefore become a major bottleneck for your application when you try to scale. However, unlike databases, NCache is able to scale out seamlessly and allows you to keep growing your transaction load. With NCache, you no longer have a scalability bottleneck.

On top of this, NCache provides you linear scalability. Linear scalability means that as you grow your cache servers from 1 to 2 and 2 to 3, your transaction capacity first doubles and then triples from the original capacity. The increase in transaction capacity does not significantly degrade when you grow your cache cluster.

Self-Healing Dynamic Cluster
NCache has a self-healing dynamic cache cluster that has a peer-to-peer architecture. This allows you to add or remove cache servers at runtime without stopping the cache or your application. The cluster automatically adjusts itself to new situation.

All of this is intended to ensure that the cache cluster provides 100% uptime since you’re very likely using it in mission critical applications where cost of downtime is very high.

Multiple Caching Topologies
Multiple Caching TopologiesNCache provides a rich set of caching topologies including Mirrored, Replicated, Partitioned, Partition-Replica, and Client Cache. A caching topology is essentially a data storage strategy in the cache. There are multiple caching topologies to handle different situations.
Caching topologies are designed to ensure that you scale out the cache linearly (both in terms of storage capacity and transaction load capacity). Caching topologies also ensure that data is replicated either synchronously or asynchronously.

Bridge for WAN Replication
NCache provides a way for you to replicate the entire distributed cache across WAN without slowing down your cache. This replication is done asynchronously and through a Bridge. You can do either active-passive or active-active replication. The Bridge can either be separate dedicated server or a separate process on your cache server. And, a Bridge can be a two-node active-passive cluster itself to provide fault tolerance.

Powerful admin tools
NCache provides powerful GUI based and command-line tools for administering and monitor cache clusters. GUI based tools let you easily administer and monitor cache clusters. And, command-line tools let you automate your cache configuration and administration tasks.

NCache Manager is a GUI based tool that lets you easily configure, create, and administer cache clusters. And NCache Monitor is a dashboard-style GUI based tool. It lets you easily monitor not only cache clusters but also web/app servers that are its remote client.

Cache Dependency for Relationship Management
NCache has a Cache Dependency feature that lets you manage relational data with one-to-one, one-to-many, and many-to-many relationships among data elements. Cache Dependency allows you to preserve data integrity in the distributed cache.

Cache Dependency lets you specify that one cached item depends on another cached item. Then if the second cached item is ever updated or removed by any application, the first item that was depending on it is automatically removed from the cache by NCache. Cache Dependency also lets you specify multi-level dependencies as well.

Database Synchronization
NCache Distributed CacheNCache provides a feature that synchronizes your cache with your database automatically. This ensures that data in the cache is always fresh and you don’t have data integrity issues. You can configure database synchronization either based on event notifications issued by the database server or by polling.

Events based synchronization is immediate and real-time but can get quite chatty if you’re updating the data in the database very frequently.

Polling is actually a lot more efficient because in one fetch NCache can synchronize hundreds and even thousands of rows. But, polling is not immediate and usually has a few second lag. The polling interval is configurable however.

Parallel SQL-Like Query, LINQ, & Tags
NCache provides multiple ways for you to search for objects in the distributed cache instead of only relying on keys. This includes a parallel SQL-like query language, Tags, and Groups/sub-groups.

Parallel SQL-like query language allows you to search the cache based on object attributes rather than the keys. And, this query is distributed to all the cache servers to be run in parallel and the results are then consolidated and returned. This allows you to issue a query like “find all customer objects where customer’s city is San Francisco”. From .NET applications, you can also use LINQ to search the distributed cache including lambda expressions.

Read-Through, Write-Through, & Auto Refresh
Read-Through, Write-Through, & Auto RefreshSimplify and scale your application by pushing some of the data access code into the distributed cache cluster. NCache provides a Read-through and Write-through mechanism that enables the cache to read and write data directly to your data source and database.

You implement IReadThruProvider and IWriteThruProvider interfaces and then register your code with the cache cluster. Your code is copied to all the cache servers and called when NCache needs to access your data source and database.

You can combine Read-through with expirations and database synchronization to enable NCache to do auto-refresh and automatically reload a fresh copy of your data when needed.

cache, NCache, distributed, provides, database, Cache, application, scale, cluster, based, transaction, servers, capacity, allows, Dependency, clusters, storage, applications, query, databases, cache, NCache, distributed, provides, database, Cache, application, cluster, based, scale, transaction, capacity, allows, Dependency, servers, storage, databases, applications, Bridge, either