Databases are getting faster every day. But they’re still a significant bottleneck for many Web applications or Web sites.
Why? Mechanical hard drives, impeded by the laws of physics, bog down the relational databases that read and write to them.
What are the solutions? Speeding up I/O by reading and writing to a faster solid-state disk rather than a spinning one can help. So can using an in-memory database to cache heavily accessed data in RAM. Another solution combines a little of both, its backers say, allowing Java-based Web apps and sites to scale their performance while avoiding expensive and possibly less effective database upgrades.
Terracotta Inc.’s namesake software is an open-source Java clustering solution.
According to CEO Amit Pandey, the software ties multiple Java Virtual Machines (JVMs) underpinning Java-based Web apps into one big cluster. That allows users to add more app servers to scale out at the application level. It caches all of the transactions going through the Java app while writing them to disk separate from the database.
This way, data generated during a transaction can be quickly stored and, if an app server fails, just as quickly recalled, without having to write each intermediate result to the database itself.
That’s perfect for data that is vital during a transaction — say, the items in your shopping cart — but that does not necessarily need to be written to disk until the transaction (i.e. the purchase) is finished.
Terracotta has about 50 paying customers — mostly enterprises — with more than twice that number using it for free, Pandey said. Customers include Adobe Systems Inc. , Comcast Corp., JP Morgan , and MapQuest Inc.
The largest group of those customers are using Terracotta in conjunction with Oracle databases.
One company that does online testing, according to Pandey, was able to double the number of students it served from 10,000 to 20,000 by using Terracotta and adding ten free open-source application servers. The company spent about $300,000 on Terracotta and the servers, he said, in contrast to the $2.1 million price tag the firm was quoted if it added more Oracle databases instead.
But doesn’t Oracle offer a cheaper solution, in the form of the TimesTen in-memory database that can serve as a front-end cache for the Oracle database?
Yes, says Pandey, though he claims that using TimesTen is “a little bit more disruptive. It doesn’t give you the same [data] persistence as we would, since we are writing to disk in parallel.” Also, Terracotta works in Java, meaning that there is no performance loss in translating data from Java objects to relational data formats, he said.
Terracotta released the version 2.6 upgrade of its software on Monday. New features include the ability to visualize and monitor activity in the Java clusters, faster performance, and official support for the open-source Tomcat 6.0 application server from Apache Software Foundation.
Ironically, Terracotta uses the SleepyCat database that was purchased by Oracle several years ago as its permanent repository. Data stored there can be dumped later at users’ convenience to another database if they want to hold onto it for future business intelligence-type queries.
Terracotta can theoretically work with Web apps built on Quercus technology.
Terracotta relies on users’ existing network and application security to protect its data, Pandey said. Also, because there are no APIs, it’s really hard to pull data out of Terracotta.”
So can you really dump your database for Terracotta? Not today, according to Brad Shimmin, an analyst with Current Analysis .
You’ll always need a database to serve as the system of record for your application. But Terracotta, by acting as a peer to that database, can substantially improve application performance by clustering the JVM,” he said. “The resulting combination (database and Terracotta server) is in-memory performance with database availability.”
But Pandey said that the company may someday build a component — perhaps an object-oriented database? — that could eventually replace a user’s conventional database.