Terracotta straps on Ehcache speed engine

Terracotta bought Ehcache to get its hands on a widely distributed set of caching APIs to simplify deployment of clusters of servers running Java virtual machines on high-volume web sites.

Two months later the Terracotta JVM clustering and Ehcache caching programs are being delivered as an integrated product.

Amit Pandey, Terracotta's chief executive officer, says the Ehcache integration is bringing two main benefits to the Terracotta JVM clustering software, which had its own caching algorithms.

The first is significantly reduced response times on Java transactions, with response times on retrieving data for Java applications running inside of JVMs falling from 150 to 200 milliseconds as they go out to disks down to something on the order of one to two milliseconds as data is pulled out of main memory, where frequently used data is cached.

This speed is important, since in many cases it allows backend databases to be more lightly configured than they would otherwise be because the data requirements are being met by the cache, which saves lots of money on hardware and software licenses.

While speed and scale are certainly important - that is what the Terracotta JVM clustering software - what Ehcache has brought to Terracotta is a large number of customers who already have applications that have been written to take advantage of the open source caching tool for Java.

According to Pandey, Ehcache, which is distributed under the Apache open-source license, has several hundred thousand production applications already running in conjunction with it, and it has about a 70 per cent market share of Java caching software. Including a piddling amount from Terracotta's own product, which required customers to tweak their code to support it. Obviously, that sort of approach doesn't work well until you are dominant in your space.

This deal really came about, says Pandey, to get Ehcache and its APIs, now called Terracotta for Caching, woven into the Terracotta JVM clustering environment. Some customers had already integrated the two products themselves - which they can do because they are open source products - and were clamoring for tighter integration and official support.

Ehcache does the caching for a single server supporting JVMs in the new Terracotta setup, and the Terracotta clustering software does the same job it did before. That is, synchronizing the in-memory data for Java applications - using locking mechanisms so the data stays in synch across hundreds of server nodes running the cache software - and backing them up onto disk so as data changes, there is a hard copy out there on the iron.

Terracotta for Caching comes in three flavors. The Ehcache DX edition is for standalone and peer-to-peer replicated caches, and this one is distributed for free. The Ehcache EX edition puts the cache on a an array of Terracotta clustered servers and adds a bunch of system management features; support for the EX edition runs to $5,000 per node for a year of support.

The full-on Ehcache FX edition adds data striping to the Terracotta cluster to boost performance and partitioned caches for what Pandey calls "extreme scale." This runs at $8,000 per node per year, in a setup that includes multiple active-active Terracotta servers and spanning maybe 100 to 150 Java server nodes.

Pandey says Terracotta has stress-tested the combined Ehcache-Terracotta clustered Java caches at up to 150 server nodes, something it did at the request of one of its customers. The companies' biggest customers tend to have somewhere between 75 and 100 Java servers, and the average customers tends to have around 10 to 12, according to Pandey.

Having created a Java caching system that can scale to hundreds of nodes, what is next for Terracotta? Well, not PHP.

While Pandey said Terracotta could build a similar setup that would allow for the caching of data for PHP applications and the scaling of those PHP applications, the Java market is big enough for a startup.

The company has talked about revving the product to support Microsoft's .NET languages and their Common Language Runtime environment - something that Pandey said the company could put together in a few months time. ®