How to turbocharge your Web site by dumping your database
- 22 April, 2008 11:51
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's namesake software is an open-source Java clustering solution.
According to CEO Amit Pandey, the software ties multiple Java virtual machines (JVM) underpinning Java-based Web applications 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, Comcast, JP Morgan and MapQuest.
The largest group of those customers is using Terracotta with Oracle databases. According to Pandey, one company that does online testing was able to double the number of students it served from 10,000 to 20,000 by using Terracotta and adding 10 free open-source application servers. The company spent about US$300,000 on Terracotta and the servers, he said, in contrast to the US$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, said Pandey, though he claimed 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 Microsoft's .Net, Pandey said, though full support isn't available because "we're not seeing a lot of demand." It does not work with PHP-based sites, though PHP code can be translated into Java via the Quercus technology.
Terracotta relies on users' existing network and application security to protect its data, Pandey said. Also, he said, because there are no application programming interfaces, "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 at 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 [of database and Terracotta server] is in-memory performance with database availability."
But Pandey said that his company may someday build a component -- perhaps an object-oriented database -- that could eventually replace a user's conventional database.