QCon London (March 27-29, 2023): Adopt the right emerging trends to solve your complex engineering challenges. Register Now.
InfoQ Homepage News Basic NCache is Now Open Source
Design Patterns for Distributed Streaming Data Environments (Live Webinar February 9, 2023) - Save Your Seat
Basic NCache is Now Open Source
Jonathan Allen
Alachisoft has offered a heavily stripped down version of their NCache product under the Apache 2 open source license. This version only supports .NET clients; unlike the full version while also has support for Java.
The feature list for NCache Enterprise edition is what you would expect from a leading cache provider. But once you get down to the open source version, there are some notable holes that make one wonder if the product is usable.
For the open source version, caches can be replicated or partitioned. Mirrored, bridged, and combinations of both replication and partitioning are reserved for the enterprise version.
For ASP.NET applications, session and view-state caching is supported, but output caching is an enterprise only feature. (As mentioned before, any kind of caching for Java including web sessions is also enterprise only.)
Cache dependencies are likewise enterprise only. This feature allows changes to monitored items such as file systems and database tables to automatically invalidate the cache. The choice to make this feature not open source seems unusual because the components needed to make it work were part of .NET 2.0's built-in caching libraries.
Another strange choice was the decision to only support async operations in the enterprise edition. These days it is assumed that only unmaintained, legacy libraries don't offer asynchronous operations.
The eviction policies are, for a lack of a better term, bizarre. The open source version of NCache only supports priority-based eviction. Standard policies such as least-recently-used and least-frequently-used, usually considered a college homework assignment, are considered to be enterprise only. The "Do Not Evict" option is also enterprise only, which seems like it could be a problem for scenarios such has storing session state.
The management and monitoring tools are available only for the professional and enterprise editions, which is typical for products like this.
Moving on, we find that any kind of authentication and authorization is an enterprise-only feature. For any company that is the least bit security conscious, this makes the open source version of the product a non-starter.
Conclusion. If you are interested in seeing how a distributed cache is implemented, the open source version of NCache is worth investigating. But for any kind of production use, NCache Enterprise or a competing product such as Memcached is preferable.
This content is in the Distributed Cache topic
Distributed Cache
NCache
Clustering & Caching
How Open Source is Contributing to Your Team's Development: What Leaders Should Know
GitHub Releases Copilot for Business amid Ongoing Legal Controversy
Prometheus Adds Long Term Support Model and Improved Remote Write Mode
Android Extension SDK Aims to Simplify the Use of Modular System Components
PyTorch-Nightly Struck by Supply Chain Attack Exfiltrating Data and Files
Amazon Releases Fortuna, an Open-Source Library for ML Model Uncertainty Quantification