Terracotta - A flashback.
While reading Terracotta architecture, I was just paused and my mind flashback to year 2002, when we try to build an ambitious health care contract system, we want to do something to scale up our performance a 100 fold to differentiate us from our competitors.This was almost impossible to achieve it since we are talking about some 10 million worth of health care products with massive transactional system. At that time we want to build a secondary in-memory servers to cache our entire set of data, for fast retrieval and store data and asynchronously persist with database. But for some valid reason, we did not implement it and scrap the whole idea.
Ok..flashback ends here. Now we have a open source, well defined and proven, NAM (Network Attached Memory) called Terracotta. Terracotta was there in market since 2006 but it made some buzz recently after it become open source at end of 2006. The year 2007 it got much needed support from open source community and become leader in Java clustring solutions. Here is a good simple introduction to Terracotta from infoQ.
Now question is where to use Terracotta. They are multiple places where ever we need a cache support. Here are some effective usage of Terracotta.
1. Distributed Caches
As per Terracotta.org, "Distributed caches powered by Terracotta can see as much as 100x throughput vs. native solutions, with no changes to existing code." and "Terracotta can support any data structure from simple hashmap to OSCache".
2. Hibernate
"Terracotta helps to reduce database overload caused by O/R-mapped applications deployed in a clustered environment. Use it to cluster your Hibernate second level cache, or get even more performance by clustering disconnected Hibernate objects."
3. HTTP Session Clustering
"Terracotta is used by Java websites both large and small to cluster web sessions. When clustered by Terracotta, web application session becomes highly available without actually being replicated to every app server in the cluster. This leads to scalable applications especially when used in conjunction with an HTTP load balancer. "
Ok..flashback ends here. Now we have a open source, well defined and proven, NAM (Network Attached Memory) called Terracotta. Terracotta was there in market since 2006 but it made some buzz recently after it become open source at end of 2006. The year 2007 it got much needed support from open source community and become leader in Java clustring solutions. Here is a good simple introduction to Terracotta from infoQ.
Now question is where to use Terracotta. They are multiple places where ever we need a cache support. Here are some effective usage of Terracotta.
1. Distributed Caches
As per Terracotta.org, "Distributed caches powered by Terracotta can see as much as 100x throughput vs. native solutions, with no changes to existing code." and "Terracotta can support any data structure from simple hashmap to OSCache".
2. Hibernate
"Terracotta helps to reduce database overload caused by O/R-mapped applications deployed in a clustered environment. Use it to cluster your Hibernate second level cache, or get even more performance by clustering disconnected Hibernate objects."
3. HTTP Session Clustering
"Terracotta is used by Java websites both large and small to cluster web sessions. When clustered by Terracotta, web application session becomes highly available without actually being replicated to every app server in the cluster. This leads to scalable applications especially when used in conjunction with an HTTP load balancer. "
Comments
It is always true, that great software/inventions happen after somebody went thru pain to resolve an issue.
Subba