Faced with an increasingly competitive market for large scale distributed data caches, Oracle has endeavored to make its own Coherence data grid software sprightlier and simpler to use.
"One of the things we didn't do so well early on was make the technology easily usable," admitted Cameron Purdy, Oracle vice president of development. "So we've made some pretty significant investments in making things easy to use."
Version 3.7 of Coherence, to be released Monday, includes more than 500 changes since the 3.6 version, which debuted last July. Among the changes are support for flash drives, which should ease the process of sizing caches, and streamlining garbage collection to reduce latency.
Coherence is Oracle's in-memory data grid software, which allows a single application or database to be spread across multiple Java application servers.
Using Coherence, an organisation can reduce the amount of times data needs to be written back to or read back from storage, a process that can slow an application. It is also used by organizations as a failover mechanism, assuring that if one server or even an entire data centre goes offline, the application and associated data stays operational on other nodes.
Coherence itself was written in Java and tuned for that language, but it also offers connectivity with C++ and .NET-based applications.
Coherence is one of a growing number of products and open source applications designed for building multi-server caches. Peers include the open source Memcache, VMware's GemStone and Terracotta's Ehcache. In addition, at least two separate working groups are endeavoring to build caching directly into the Java Enterprise Edition 7 specifications, namely the JSR-107 working group and a Red Hat submission of its Infinispan data grid technology.
Oracle has also tried to do away with the size limitations of Coherence caches. Today's larger deployments of Coherence tend to be about a quarter of a terabyte in size, Purdy explained. This limitation has largely been due to the amount of working memory that can be placed on each server.
The new release allows administrators to incorporate solid state flash memory into a configuration, in effect eliminating the upper limit of the amount of memory that can be devoted to each cache. A server can be outfitted with essentially an unlimited amount of flash memory, which then can be appropriated by Coherence.
"We've extend[ed] our capacity for storing data beyond the RAM and onto the flash device," he said, noting that the use of flash does not incur a performance penalty. "This is pushing Java into a new strata."
Also thanks to flash support, this is also the first version of the software that doesn't require that the administrator set the size of the data grid beforehand. Instead, the administrator can set aside some memory on one of the servers to act as an overflow buffer. Purdy said he did not know of an upper limit to a size of a data grid using this technique. "That would depend on the application itself," he said.
"We're now pretty comfortable in telling our customers that a couple terabytes of memory is easily achievable," he said. "You no longer have to tell the system how big each cache should be."
Oracle has also tackled the performance problem that came with Java garbage collection, or the built-in process within Java to periodically free up memory no longer in use. Because the JVM (Java Virtual Machine) executes this operation automatically, all other operations go on hold, introducing latency into the program's operation.
With this release, Oracle re-engineered the architecture of Coherence so it reduces the severity of this interruption. In a nutshell, Oracle minimised the number of objects that an application within Coherence creates. With fewer objects, less time is needed for garbage collection, Purdy said.
"We've reduced the number of objects by about 80 percent, which is a dramatic improvement," he said. "We can stuff a lot more data into the same chunk of memory, without having a lot more objects."
Coherence also comes with a number of other improvements intended to make deployment easier overall. The software has been integrated with Oracle's GlassFish application server, which should lower the time it takes to deploy the software on a GlassFish cluster.
For this release, Oracle also worked with the vendor F5, which offers a load balancing appliance, called Big IP, that now can be easily paired with Coherence. "Big IP can work with Coherence to do dynamic load balancing," Purdy said. "If you have Big IP in your infrastructure, you can offload the load balancing."