The NCache team is thrilled to announce the awaited release of NCache 5.3. This release brings many exciting features and enhancements along with some bug fixes as well. To learn more details about this release, you can also read the NCache 5.3 release notes.
What To Expect In This Release
The details of all the features and enhancements in this release are explained below.
NoSQL Database (In-Memory with Persistence)
NCache is now providing a NoSQL Database feature where not only is the entire database In-Memory, but it’s also persisted to permanent storage in real-time. This ensures the protection of your in-memory data in case of cache failure or otherwise.
The following are the sub-features that have been provided alongside this feature:
- Import/Export for NoSQL Database: NCache provides PowerShell cmdlets through which you can import or export JSON or CSV data from/to your NoSQL Database.
- Backup/Restore NoSQL Database: NCache Persistence Provider for NoSQL Database persists data in multiple files located in a shared network folder (based on UNC path). So, you can use regular file system tools to perform backups. NCache also provides an admin tool (as PowerShell Cmdlet) to briefly suspend NCache writes to the persistent storage and only make them in memory while you’re performing your filesystem backup. But, when you’re done with the backup, you can enable writes and all the pending writes are immediately applied to the persistent storage.
Distributed Lucene for .NET (Full-Text Search)
NCache provides Distributed Lucene for .NET applications using Lucene for Full-Text Search. Distributed Lucene takes the standard Lucene.NET index and makes it distributed so you can scale the Lucene index to multiple NCache servers even at runtime.
The following are the additional features NCache now provides for Distributed Lucene:
- Import Lucene Index: NCache gives you the ability to import an existing Lucene index into NCache Distributed Lucene in a bulk file copy manner that is much faster than reading documents from your existing Lucene index and individually writing them to NCache Distributed Lucene thru its API.
- Backup/Restore Distributed Lucene Index: NCache partitions and saves the Lucene index into a distributed environment and on each NCache server. The index is stored in the form of multiple files.,therefore you can use regular filesystem backup/restore tools on them.
- Support for Facets: NCache now supports Faceted Search with Distributed Lucene. Faceted Search is a technique that involves augmenting traditional search techniques with a faceted navigation system. This allows the user to narrow down search results by applying multiple filters based on a faceted classification of the items.
- Support for Geo-Spatial API: NCache now supports Geospatial indexes in Full Text Searching with Distributed Lucene. Just like the regular Full-Text Search Lucene index, the Geospatial indexes also use Lucene.NET internally to support Geospatial queries. The NuGet package for Geospatial indexes is separate from the Full-Text Search index NuGet package.
Python & Scala Client
NCache now provides clients for Python and Scala for both Windows and Linux. These clients enjoy all of the client-side API features of NCache that are available for .NET and Java.
.NET 6.0 Support
NCache now fully supports .NET 6.0. All NCache Servers are compiled in .NET 6.0 (or .NET Framework 4.8 if you’ve downloaded that version). NCache clients are also .NET 6.0. However, NCache also provides support for an earlier version of both .NET Core and .NET Framework for NCache clients.
JSON Serialized Sessions (ASP.NET/ASP.NET Core)
NCache now allows you to use JSON Serialization for your ASP.NET / ASP.NET Core sessions. JSON Serialization also lets you use objects that are not marked “Serializable” and also without using Compact Serialization on them. With JSON Serialization, you only have to make configuration setting change.
SQL Query Index using Annotations
NCache now supports defining query indexes programmatically using custom annotations. With this, you now have the full support of different ways of creating query indexes in NCache. Previously, you could only do this through configuration files.
Nullable Support in SQL Queries
NCache now supports nullable properties for creating an index and then using them in SQL Queries. This feature is provided because .NET properties and fields are nullable.
Memory Optimizations for Faster Performance
NCache had earlier implemented smart object pooling and also breaking up larger objects into less than 80K objects so LOH is not frequently used. This earlier memory optimization had already improved NCache performance quite a bit for most commonly used “atomic operations” like Get, Insert, Update, Delete of individual items.
However, several other areas like bulk operations, query indexes, SQL searching, etc. were not fully optimized in this manner and therefore resulted in the frequent use of LOH and Gen2 collections and hence not the best performance.
Now, this version of NCache has optimized memory management in all these areas which have resulted in even faster performance of NCache all around.
Support for HTTPS and Machine Names (NCache Web Manager)
NCache now provides support for HTTPS for accessing NCache Web Manager. By default, it is HTTP but you can configure it to use HTTPS if you have a certificate.
NCache now also provides you with the ability to specify machine names instead of IP addresses. You can specify a machine name for adding a cache server or a cache client to the cache configuration. Similarly, all views on NCache Web Manager continue to use IP addresses by default.
Get Started with NCache 5.3
You can get started with your copy of NCache by going through our Getting Started Guide so that you can take full advantage of the rich features provided by NCache to build powerful .NET/.NET Core, Java,Node.js, Python, and Scala applications.