Ubiquitous Java Caching Solution Gets Upgrade
Java clustering infrastructure provider Terracotta on Tuesday released Ehcache 2.0, the first major upgrade of the widely deployed open source Java caching solution since the company acquired it last August.
Ehcache is a popular open source Java cache library; enterprise production deployments of Ehcache are estimated to be in the hundreds of thousands. It also ships as a component in Hibernate ORM, the Spring Framework, Alfresco CMS and the Liferay portal.
With Ehcache 2.0, Terracotta has added some new capabilities and simplified others, explained Mike Allen, the company's product manager. He characterized the changes as "massively simplifying the onramp to scale."
"We've put a lot of effort in this release to put in enterprise class features," he said.
Those features include new support for the Java Transaction API (JTA). Support for the JTA allows users to employ a standard XA-compliant transaction manager for "all or nothing" transactions that must include all of a given set of operations. "This is a pattern that is very well-understood and commonly used by people working within traditional JEE app servers and the Spring Framework," Allen said, "so we've added it as a first-class feature within Ehcache."
Ehcache 2.0 also adds write-behind caching to its tool belt. "This is a capability that everybody was asking for," Allen said. "The idea here is that when you're using a cache, you want to keep the cache and the database in sync. But they don't have to be in sync at the same instant in time, as long as you can guarantee that they get synchronized. The ability to update your database asynchronously makes the updates more efficient, reduces and balances the load on the database, and reduces application latency, while still guaranteeing that the system of record is maintained.
Among the features enhanced in this release are fast loading, which provides optimized bulk-loading for fast cache warming and rapid application start-up; and a refined management feature designed to provide "dynamic configuration" that allows cache parameters (TTI, TTL) to be changed on the fly through the Terracotta management console or any JMX-compliant tool.
Beta testers of the Ehcache 2.0 release surprised the company by using it for development with Groovy and Grails. Grails, the Web application framework, leverages the Java-based Groovy dynamic language.
That's not surprising to Gartner analyst Mark Driver.
"That's one of the fantastic things about open source," Driver said. "When you leverage these very broad communities, you often find people doing things you'd never have imagined yourself. There's a whole new emerging market out there of Grails and Groovy users, and perhaps in the future, other dynamic languages that are going to need these kinds of capabilities in the Java world that they haven't yet considered. That's just the nature of open source."
Driver sees the Terracotta acquisition of Ehcache as a win for both the company and the open source community. "Terracotta knows this market extremely well," he said. "This is what they do. So they can infuse the project with a lot of experience and knowledge. But also, Ehcache has huge potential as an onramp to commercial Terracotta product."
San Francisco-based Terracotta is the founding company of the open source Terracotta project. Terracotta clusters Java Virtual Machines (JVMs) to create a shared memory pool at the Java application tier, which can be used to share data among servers. This shared memory pool can also be used to coordinate the work of many JVMs. The company's Java infrastructure solution is a commercial offering based on the open source project.
The company's products provide a means of scaling enterprise Java applications to as many computers as needed without custom coding. Customers offload work from databases and applications to the Terracotta infrastructure, essentially mimicking Amazon EC2 inside private datacenters.
"Our mission in life is to make scalability easier for developers," Allen said. "You write you applications using a standard API like Ehcache, and the Terracotta infrastructure handles the scale-out. You don't have to go through a bunch of contortions and rewrite to scale the app or buy an expensive cluster database."