Live Upgrade to NCache 4.6
You can now upgrade your caches from previous versions of NCache (prior to 4.6) to NCache 4.6, while your client side applications are live. This significantly reduces the delay in your services caused by an upgrade manually.
Using Live Upgrade, you can replicate the data of your current running cache to an NCache 4.6 cache using a Bridge in between while both the caches continue to run.
MapReduce for Big Data
MapReduce in NCache allows you to process massive amount of live, unstructured data in parallel across an NCache cluster, enabling scalability and a marked increase in performance. To distribute input data and analyze it simultaneously, MapReduce operates in parallel fashion on all nodes in a cluster of any size.
Aggregator for Big Data
NCache now also provides the Aggregator to enhance your MapReduce experience, as Aggregator operations work on top of the MapReduce framework. It groups values from multiple sources and performs variety of mathematical operations like summing up values, calculating averages, finding minimum/maximum values and returns a single result. NCache also allows you to provide your own Aggregator, and define your own operations like finding mean/median/mode and so on.
The Entry Processor has been introduced in NCache to let you execute your code against a set of cache entries on the server side. This results in fairly noticeable performance improvement because of the avoidance of network trips and unnecessary consumption of resources.
GUI Tool For Viewing Logs
NCache Log Viewer is a new GUI tool designed to aid you in logging your NCache activities in a more convenient and readable way. This lets you view your logs created on each node and cache or bridge, and offers flexibility as you can configure the type of information to be shown.
Separate Cache Host Process
Previously, the NCache service and all cache instances were confined within one single process. NCache has now provided more reliability by dedicating a separate process to the service and a devoted process to each cache host. This means that now even if the service process crashes, the caches and their associated resource information is not lost, and can be rediscovered once the service restarts.
New Default Expirations
NCache has introduced a new set of default expirations that can aid you in setting your time-based data invalidation strategies with more flexibility.
Store Data in Object Format
With the advent of data analytical features, NCache has provided the ability to store data in its native .NET object format. This is for situations where you are running MapReduce, Aggregator or Entry Processor code on all the servers in the cache. This code runs within the server process and therefore benefits greatly if the data is kept in its native .NET object format because there is no serialization/deserialization cost associated with operations anymore.
New Counters for MapReduce and Bulk Operations
NCache has now introduced new counters for MapReduce and Bulk operations (including Group and Tag operations) to allow exhaustive monitoring of your application performance.
Light-weight .NET Client
NCache now has a light-weight client that is more scalable and faster than 3.0. This light-weight client uses our own socket level protocol to talk to NCache server (either locally or remotely).
Light-weight Java Client
NCache does not rely on any Java-to-.NET interoperability bridge and instead uses its own socket level protocol to talk to the NCache server (just like the .NET light-weight client). Now you can have your Java applications use NCache as a clustered object cache. This protects your investment in NCache and allows you to keep one cache deployed and used by multiple applications. Java client works the same way as .NET client. The Java client can run on any Java compatible platform.
Failover in Remote Lightweight Clients
Both Java and .NET lightweight clients have fail over capability. This means that if the primary server they're connected to goes down, they'll automatically connect to another server in the cluster. And, you can specify the priority of these servers for each client differently. Additionally, when new servers are added or removed at runtime, this information is passed on to the remote clients so they can use them for failover as well.
NCache now provides security with authentication and authorization built into the product. Authentication is done through LDAP. NCache allows you to specify administrators and users. Administrators can manage the cluster while the users can only make runtime API calls to a specific cache. NCache allows you to save data in encrypted form in order to secure your data. For this 3DES Encryption algorithm is used.
Application Connects to Multiple Caches
NCache client applications can now connect to multiple caches simultaneously. This allows you to keep multiple caches for different purposes and share them across applications more effectively.
Multi-key Event Notifications
Applications can register interest into multiple items in the cache to be notified when they're updated or removed. Then, whenever these items are updated or removed, the client application is notified anywhere in the cluster.
Synchronize Items in Multiple Caches
A new cache dependency called
CacheSyncDependency is added that allows items in
one cache to be dependent on items in another cache. This way, for example, you
can have a Local Cache that keeps items frequently used by your application and
a Clustered Cache that keeps a larger number of items being shared with other
applications. And, your local items are kept synchronized with the clustered
cache so you never have any data integrity problems while improving your app
performance even further.
Cluster Management Events
NCache fires events whenever a node joins or leaves the cluster or when a client finds that its server has gone down and it now needs to connect with another server. You can write hooks for these events and take appropriate actions when these events occur.
Cache Management API
You can now manage the cache through API (in addition to NCache Manager and command line tools). You can start or stop a cache from an API now.
Multiple Cache Instances on same Server (TCP Port Range)
You can now run multiple cache instances (as InProc) on the same server without any port conflict. Now, you can specify a range of TCP ports to be used for cache clustering instead of only one port previously. This way, multiple instances of the cache can run with each instance using one port.
Callbacks for Asynchronous operations
You can now specify a callback for
RemoveAsync operations. This callback is called when the operation completes
either successfully or with a failure.
Performance Improvement to Partitioned Cache with Replicas
NCache has now optimized communication in the cluster for this topology.
Native .NET Clustering
NCache developed natively in .NET
Truly scalable peer-to-peer multicasting clustering
Automatic and transparent node failure recovery
On the fly addition and removal of servers
Easy to understand API
Same API for Local or Clustered environments
Cache configuration through a graphical tool (NCache Manager)
Fixed or variable sized cache
Time-to-live expiration of cache entries
Fixed-time expiration of cache entries
Idle-time expiration of cache entries
Least-Recently-Used (LRU), Least-Frequently-Used (LFU), and Priority based Eviction Policies
Expired Items Resynchronization
SQL and OleDB Cache Dependency
Support for custom dependencies
Event Notifications in Local and Clustered environments
In-process and out-of-process cache configurations
Heap, raw memory, memory mapped file, and file based storage options.
Intelligent relationship management through File and Key based dependencies
Read-Through and Write-Through caching
High performance Write-behind caching
Clustered Location Transparency
Clustered Lock Management
UDP and TCP based Cluster
HTTP Clustered Session Management
Maintain and synchronize session state throughout a server farm
Users can now move from server to server on each http request
Achieve optimum load-balancing (no more sticky sessions needed)
No single-point-of-failure due to sophisticated clustering topologies
Built on top of NCache clustering to true in-memory performance
Same API as Clustered Session State
GUI Based Cache Configuration
NCache Manager is a Windows GUI
Create and manage Local Cache or Clustered Cache from it
View rich statistics on the entire clustered cache from a single point
Change clustering topology without affecting the client application
Add or remove nodes from the cluster at run-time