Tuesday, August 23, 2011
NCache 4.1 has introduced very important new features and enhancements that are critical for enterprise level applications. This new release gives a whole new package for run time data sharing between multiple platforms (java & .Net). Java has been made 100% compatible with .NET and now you can even plug-in your Java code with NCache process. NCache request-response model has also been enhanced to handle large responses where GBs of data can be retrieved from the clustered cache in a single request. All the bugs that were reported in earlier release have been fixed in this release.
For a comprehensive list of ALL FEATURES in 4.1, please read NCache Features:
NCache now allows you to store either .NET objects in the cache and read them as Java objects from your Java applications, or vice versa. And, instead of doing .NET to Java transformation through XML, NCache uses binary-level transformation. As a result, the performance is super fast. NCache automatically resolves type conflicts between Java and .NET.
You can also utilize multiple versions in Runtime Data Sharing between .NET and Java. See details below.
You can now share multiple versions of the same .NET or Java classes across multiple applications. One application may be using version 1.0 of a class while another application may have a later version 2.0 of this same class. When version 2.0 of this class is stored in the cache, the earlier application can still fetch this class as version 1.0, and vice versa. NCache lets you configure version mappings through XML configuration files.
You can utilize version also in Runtime Data Sharing between .NET and Java.
NCache lets you specify a data-set based on an SQL-like query. It then maintains this data-set in the cache cluster for you and monitors any runtime changes in it, including Additions, updates, or deletes. And, NCache notifies your application whenever any of these changes occur in the dataset. This allows your applications to more intelligently monitor for either data changes or addition of data matching a certain criteria and be notified by NCache.
This is a powerful feature if you want to share data at runtime between multiple applications.
Bridge Topology allows you to intelligently and asynchronously replicate the entire cache across the WAN. NCache 4.1 now offer four different configurations in Bridge Topology. They are:
Previously, you could only assign tags as values. Now, you can assign tags with names. This allows you to index data based on attribute name and attribute value concept. Previously, you could index objects but all string data could not be indexed. Now, even string data (e.g. XML) could be indexed with named tags. Then, you could either use NCache API to fetch data belonging to one or more named tags or you could issue SQL-like query (through LINQ or OQL) for it.
NCache 4.1 brings support for Java at the same level as .NET. Here are the new Java based features intended to catch up to .NET feature-set:
You can now use Client Cache feature in Java applications on Windows or Unix. There is no code change required in your applications to enable Client Cache.
You can now use Client Cache feature in Java applications on Windows or Unix. There is no code change required in your applications to enable Client Cache.
Write your cache loading code in Java and register it with NCache. Your native Java code will run on cache servers just like the .NET code.
Now, you can register your Java classes with NCache and NCache generates their serialization code at initialization time, compiles it in-memory, and sends it to NCache clients. This compiled Java code is then run to serialize/de-serialize your Java classes. This obviously speeds up your performance because compiled serialization code runs much faster than Reflection based serialization that is otherwise done in Java.
NCache now provides an L2 Cache for Hibernate. This allows you to start using NCache without making any code changes in your Java application.
NCache now allows the cache servers to return larger response in smaller chunks
for a given request. This improves the overall cache performance because the
serialization cost reduces with the size and also helps applications to fetch larger
data sets in a single call. It also eliminates the .NET serialization limitation where it
fails to serialize data size larger than 1.9 GB. Response threshold and chunk size
both are configurable and can be modified from NCache service config file
“NCache\bin\service\ Alachisoft.NCache.Service.exe.config”
<add key="NCacheServer.ResponseDataSize" value="1024"/>