Today Oracle announced and made generally available Coherence 3.6. Like it’s predecessor Coherence 3.5, there’s a lot of stuff in Coherence 3.6, parts of which may be considered entirely new products in the Data Grid space. Having been through four beta releases over the past six months, it’s ready for prime time. You can download it now via the Coherence site http://coherence.oracle.com.
While the release notes are extensive as usual, here’s a few of the cool new features.
1. The new Transaction Framework
This is something we’ve been working on for sometime and deprecates the old TransactionMap implementation. What do you get? Well the new Transaction Framework is based on an entirely new Multi-Version-Concurrency-Control implementation that is designed to provide ACID transaction guarantees across caches (and partitions). Better still, it supports
NamedCache features like queries, aggregation, and entry processors, across caches, all within the context of a transaction. That’s right. You can now do fully distributed server-side grid-based processing across caches transactionally. Further, like the rest of Coherence, you can do this while servers are being added and removed from the cluster.
2. The new Coherence Query Language
Also something we’ve been working on for sometime, the new Coherence Query Language (CohQL) is designed as light-weight SQL and JPA-like query language for querying caches. There are two main components to the new CohQL feature;
i). a query builder that can compile SQL-like queries into regular Coherence Filters, thus meaning you can use CohQL in existing MapListeners, Queries, Entry Processors, Aggregators etc ,and
ii). a new console tool that can be used to query, backup, restore and manage a cluster.
There are numerous examples here.
3. The new Quorum facility for Services
In Coherence 3.6 we’ve introduced the concept of Quorums that allow you to specify the behaviour of individual Services (like the Proxy, Cache and Cluster services etc) during cluster membership changes. That is, Quorums allow you to specify the minimum number of service members that are required before actions on the said service is allowed (or disallowed).
For example: Say you want to restrict remote clients from connecting to a cluster until a certain number of proxy services (say 3) are available. All you need to do is specify the proxy-quorum-policy-scheme.
Of course like the rest of Coherence you can also specify and use custom policies. These could do anything you like, from restricting read access based on some business condition or ensuring the cluster doesn’t start to balance partitions until a certain number of members have started – thus making large-cluster start ups almost instant.
4. The new .NET Session Manager
In this release we’ve brought the Coherence .NET Session Manager implementation to be in parity with the Java Enterprise Edition (Coherence *Web) Session Managers. I think I can confidently state there is no other implementation like this for .NET available on the market.
As stated, these are just a few of the new features. There are significantly more goodies in the release notes. Stay tuned for individual postings on what’s new and examples.