I was looking at products for scaling up an existing client/server kinda of application. I am posting here my findings on Terracotta.
Allows the applications to be clustered to run on multiple JVM’s without changing source code and to get linear scalability and total fault tolerance. Terracotta injects clustering and caching into off-the-shelf JVMs.
How it works?
The technical approach that Terracotta uses is client/server, relies on byte code manipulation to track object changes, uses XML descriptors to define data synchronization points, and communicates object deltas. Theoretically, it should have efficiency advantages if you have a very large object graph and you frequently access that graph but only change small bits of information within it.
At the heart of the Terracotta architecture sits the Terracotta Server. Terracotta provides a set of infrastructure software installed on an inexpensive server. Multiple Terracotta Servers can be clustered together to make a high-availability hub shared by many application servers, even across dispersed geographies.
The server's primary job is to replicate state across application servers in the data center, manage connections from various clustered JVMs, and ensure coherence and consistency of application data. A single Terracotta server can provide clustering services for all of the Terracotta modules in use in the Data Center.
Existing servers within the data center need only have the Terracotta libraries installed on them. Terracotta libraries provide various 'modules' which communicate with the Terracotta server and enable a variety of clustering services.
Terracotta Fail over
The Terracotta Server can operate with a 'hot back-up' to meet availability requirements. In the event of a failure in the active Terracotta Server, the back-up will automatically take over transactions from various clustering clients and ensure that the replicated state is maintained. No state or cache information is lost in any application node. And, failover takes only seconds. Connected clients will notice only a brief pause during the failover process.
• API Less – One can simply plug in Terracotta (install the libraries), configure (edit appropriate configuration files), and play (start Terracotta and run the application)
• Provides a management console to provide metrics about connected clients, object/content caches
• Requires an external server
• Supports session replication for WebLogic Server 8.1 and Tomcat 5.0
• Terracotta server required a hot backup for 24X7 applications