Thursday, April 22, 2010

<terracotta clustered="true"/>

One challenge with drastically simplifying Terracotta as a tool for application scale is getting the word out that it's occurred!

The subject of this blog is one of two lines of config and a jar on the classpath that move Ehcache to be a coherent distributed cache. The line of config in the subject says, "Hey, cluster this cache." The other line, which looks something like this:

"<terracottaConfig url="localhost:9510" />"

tells Ehcache where to find the Server Array.

This same story is true for scaling out Http Sessions, Quartz Scheduling and Hibernate Caching. A whole new world of scale is available to the applications we all write. It free's us from complex sharding, awkward CAP trade offs and endless DB tuning. And the cherry on top is it's open source.

No recompile, no code changes, no magic tricks or additional knowledge. I could train my dog to scale an application built on these ubiquitous frameworks.

Check out these blogs to learn more:


  1. Looks very cool.

    Question about the coherence:
    How is coherence realized? So how can you guarantee that a user sees a consistent snapshot of reality and not a non deterministic set of reads?

    Even with locks from a consistency point of view this is hard to realize. So is some kind of logical clock used?

    Peter Veentjer
    Multiverse: Software Transactional Memory for Java

  2. I think what you are asking about is stable view across key's rather intra key. Ehcache doesn't currently have a mode for stable view though one can achieve easily on a per key basis using the explicit locking wrapper