Oracle's latest efforts were expressed in a statement by Cameron Purdy, Oracle's vice president of development, who said, “One of the things we didn't do so well early on was make the technology easily usable. So we've made some pretty significant investments in making things easy to use."
Such changes will be put to the test today, as Oracle will release Coherence 3.7. An update to version 3.6 which was released in the middle of last year, version 3.7 comes equipped with over 500 changes. While the list of changes are too numerous to list, there are some highlights.
Latency is reduced via a more streamlined garbage collection process. While Java's integrated garbage collection process helps to free up memory no longer in use, it does so automatically. This causes other operations to be placed on hold, thus creating latency issues. Oracle tweaked Coherence's architecture in version 3.7 to minimize the number of objects an application creates. Doing so lessens the need for garbage collection, and in turn reduces latency. "We've reduced the number of objects by about 80 percent, which is a dramatic improvement," Purdy said. "We can stuff a lot more data into the same chunk of memory, without having a lot more objects."
Flash drive support has been added, making Coherence 3.7 the first version in which an administrator does not have to set the size of a data grid prematurely, since they can use one of the server's flash memory as a buffer. Using flash memory in such a technique helps to eliminate data grid size limits. "We're now pretty comfortable in telling our customers that a couple terabytes of memory is easily achievable," Purdy said. "You no longer have to tell the system how big each cache should be."
In addition to improved reduced latency and flash drive support, Coherence 3.7 features easier deployment. Deploying the software on a GlassFish cluster should take less time, as it has been integrated with the Oracle GlassFish application server. F5's Big IP load balancing appliance can also be paired with Coherence.
True to its name, Coherence permits a single database or application to be extended across multiple Java application servers. Written in and tuned for Java, Coherence provides additional connectivity with C++ and .NET-based applications. The software is useful to organizations in various ways. If a data center or server goes offline, the software can assure that the application and its data remains functional on other nodes. In addition, Coherence aids application speed by reducing the number of instances in which data must be written back to or read back from storage. Products similar to Coherence include GemStone, Ehcache, and Memcache. Besides those products, the working groups of Red Hat and JSR-107 have kept busy in their attempts to integrate caching directly into Java Enterprise Edition 7 specifications.