If you want to make money, and perhaps especially in the open source software racket, you have to keep improving your software to help it get more widely adopted among enterprise customers who get nervous if they don't hand over big wads of cash to someone to babysit the code. That's why Terracotta, a maker of systems programs that help Java applications scale, has made a number of acquisitions and has tweaked two key programs in its portfolio.
Terracotta got its start providing a means of clustering together Java virtual machines and added content caching using its own APIs to the stack to help boost performance. But last August it decided to acquire the company that controlled the open source Ehcache project, which has about a 70 per cent share of Java caching out there in the real world. In October, Terracotta mashed up Ehcache with its JVM clustering, now known as Terracotta for Web Sessions.
Today, Terracotta will launch Ehcache 2.0, the first major upgrade to the Ehcache program since it took over the project. The most significant enhancement is perhaps a plug-in that allows the combination of Web Sessions and Ehcache to back end the Hibernate object/relational persistence and query service. (Technically speaking, Ehcache 2.0 supports fully coherent distributed caching of Hibernate as a second-level cache, and you can switch from local to distributed implementations by tweaking one configuration file - no Java agents or boot jars required.)
This plug-in gives Hibernate the same kind of quick scalability and cache performance that Java applications get when they make use of these two Terracotta tools. And, of course, the whole shebang is controlled by the Quartz job scheduler, another popular open source tool that Terracotta acquired in November 2009 and integrated with its other tools this past January.
Ehcache 2.0 has a number of other features that make it enterprise-grade. The caching program now supports the Java Transaction API, which implements the old X/Open XA standard for how transactions monitors work in mult-tiered server setups where online transaction processing is performed. What the JTA support means is that any Java applications that run with Ehcache backing them up can now be rolled back by transaction monitors and managers, just like uncached Java applications.
Ehcache 2.0 also has a write-behind API that allows for updates to databases sitting behind the cache to be packaged up in asynchronous mode and dispatched "in a lazy, asynchronous manner," as Terracotta put it. This reduces loading on the databases and caches but doesn't result in data corruption and does improve application latency. Ehcache 2.0 also has a new bulk loading option to allow for caches to be updated from databases in about one-tenth the time.
Terracotta Web Sessions has been made easier to use with the update of Terracotta 3.2.1, also announced today, and is agnostic about JVMs, just as Ehcache is (meaning no pesky Java agents or boot jars are required to configure it for any particular JVM). Terracotta says that its JVM clustering is easier to use than any other solution (and took potshots at Oracle Coherence), requiring only that a jar file be put into a classpath and making one container-specific change. Web Sessions clustering also supports more containers, including WebLogic, Tomcat, JBoss and Jetty.
During beta testing of the new tools, companies kept asking for a way to automatically scale out the Grails framework for Groovy applications, and as part of the rollout today Terracotta is demonstrating that the combination of Web Sessions, Ehcache, and Quartz can scale out Grails apps.
The Terracotta stack will also be shown on various cloudy infrastructure, according to Mike Allen, head of product marketing at the company. This will include the Eucalyptus open source cloud framework, as well as Amazon's EC2 public cloud. The software stack is also supported on VMware's ESX Server hypervisor and can coordinate with the vCenter management tools that control ESX Server as well.
Commercial support for Terracotta's products ranges from $5,000 to $8,000 per application server node, the price depending on features. The software is all available for free, of course, being open source. ®