Oracle has today released version 3.7 of Coherence, its distributed in-memory data grid. The new product introduces a feature called Elastic Data. According to Cameron Purdy, Vice President of Development for the Coherence product, this allows near memory speed access to data, regardless of storage medium.
There's basically no performance delta between in memory and flash for us, thanks to some R&D we did around flash devices and Java's NIO capabilities. So we're able to drive solid state storage devices at a very, very high rate. What this allows us to do, both from the Garbage Collection (GC) optimisations that we've done in 3.7, as well as the ability to transparently overflow to flash, is to run significantly larger heap sizes without significant GC penalties. At the same time whatever doesn't fit on the heap is automatically stored on flash. So it is a pretty dramatic increase in terms of the amount of information that we can manage.
Configuration is also straightforward; you simply tell the JVM how much memory you want to allocate for elastic data, and which solid-state disk to use, and everything else is done automatically.
That theme of simplification of the product can be seen elsewhere. Configuration is now XSD based, which enables tools such as Oracle's own Eclipse-based tooling for Coherence to support auto-complete for configuring clusters and caches.
Another area of the product receiving considerable attention is the Coherence*Extend client/server protocol. Extend allows a variety of applications, such as Excel spreadsheets, C# applications, or C++ code, to connect into the cluster. These are commonly used in trading and banking systems, where security and low-latency are strong requirements. Given that, 3.7 improves the load-balancing capabilities, simplifies configuration, and also provides support for hardware-based SSL acceleration. Purdy told us
We've added WKA (Well Known Address) support. That allows the clients to have a very, very simple configuration. They attach in through one of the Well Known Addresses, and then they load balance from there. And that allows them to quickly discover all the potential servers that they could be load balanced across. The load balancing can be done either on the client side or the server-side.
Aside from software-based load balancing, the Oracle Coherence team have added integration with the F5 BIG-IP Local Traffic Manager (LTM) product, a hardware load balancer. This integration supports hardware SSL acceleration, so Coherence can now do SSL acceleration on the server, taking advantage of some of the advanced instructions available through the Intel CPUs, for example, or it can overload the CPU-intensive SSL encryption to the hardware load balancer.
Finally, the Coherence team have also been working on GlassFish integration. The 3.7 release introduces native integration of Coherence*Web, an HTTP session management module dedicated to managing session state in clustered environments, via an SPI for GlassFish. This allows "no code change" installation and configuration of Coherence*Web on GlassFish application servers. This puts GlassFish on a par with WebLogic in terms of support.
The original Coherence product was developed by Tangosol, acquired by Oracle in April 2007, when Coherence had about 120 direct customers. Since the acquisition, the Coherence product's install base has grown considerably, and is now in the thousands, Purdy told us. Whilst traditionally Coherence has been used by financial services organisations, Oracle has started to see it getting deployment in other verticals, such as large eCommerce, telecoms and logistics companies, as well as gaming companies such as Riot Games (QCon presentation) and LucasArts.