Apr 30, 2009 (05:04 AM EDT)
Terracotta 3 Takes A Load Off Databases

Read the Original Article at InformationWeek

Terracotta recently introduced Terracotta 3.0 Server, an upgrade to its Java application subsystem that clusters Java Virtual Machines and manages random access memory for applications across a pool of servers.

By combining those two functions, Terracotta 3 lets Java applications call out from the database once and build the objects that an application server will need to run the application. Terracotta 3 shares this "scratch" or runtime operational data across physical servers, allowing an application to scale up to demand by initiating more Java VMs and application servers.

The brute-force way of meeting more demand would be to start up more database base servers, applications, and application servers on a greater number of hardware nodes. Terracotta 3 tries to avoid brute force by applying a shared approach to Java application objects "in their assembled form."

A time-consuming aspect of running Java applications is the calling of data out of the database that's needed to construct a software object representing part of the application's function. An object already built that's viable on one hardware node should be just as useful when supplied to another node, the company said.

Because Terracotta uses a central server to manage other servers' memories, "we put objects and data in a shared memory store. We look like regular memory to the application. That makes it extremely fast," Terracotta CEO Amit Pandey said in an interview. As demand for an application increases, fresh instances of the application server go to work with the objects already in the shared memory pool.

In an April 17 research note on Terracotta, Gartner cited Sabre, Vodafone, InterContinental Hotels, Dun & Bradstreet, and Adobe as users of the product.

One reason Terracotta has gained a foothold with these customers is because its approach allows for fewer hardware servers, database servers, and instances of the application when businesses scale up. Instead, Terracotta 3 substitutes its ability to manage network-attached memory -- or clustered server memories -- as a whole, maintaining useful objects, flushing out garbage objects no longer needed, and maintaining the integrity of critical data, said Pandey. If 20 CPUs were needed for an application in its pre-Terracotta state, then eight to 12 CPUs might be needed after Terracotta 3 is implemented. That's because 40% to 60% of the database workload has been off-loaded to the Terracotta subsystem, Pandey claimed.

The amount of data in the database remains the same. It's the repeated calls to the database to build the same software objects that have been off-loaded. The shared memory pool may be used by more than one application at a time, he added.

As objects change or data is added to the memory pool, the central Terracotta server writes periodically to disk so that the application could recover from any system failure.

Database systems often are oversized to handle large applications and leave them with spare headroom or data-handling capacity. With the Terracotta approach, resources can be more realistically applied to the database system. Once an application's set of objects has been loaded into the Terracotta shared memory, database work tends to level off and approach a steady state, Pandey said.

Terracotta 3 is available as a free download under the Terracotta Public License, based on Mozilla. Several of Terracotta's version 3 scale-out features are available only in a commercial version, through subscription at $5,000 to $12,000 per node. Pricing depends on features and data security capabilities, Pandey said.


InformationWeek Analytics has published an independent analysis what IT and corporate professionals are looking for in business optimization. Download the report here (registration required).