Ehcache Joins Terracotta

| by Floyd Marinescu Follow 38 Followers on Aug 18, 2009. Estimated reading time: 4 minutes |

Two of the most notable open source Java caching solutions have joined forces with Terracotta's purchase of Ehcache.  Terracotta, unique for providing JVM-level "pojo clustering", can take multi-threaded single-JVM apps and have them run across multiple JVMs with no code changes. Ehcache is nearly ubquitous with hundreds of thousands of deployments; it provides the standard HashMap style interface similar to Oracle Coherence. The combined entity likely has the largest install footprint of all Java caching products.  InfoQ spoke to Terractta CEO Amit Pandey and Ehcache founder Greg Luck.

For Ehcache users, joining Terracotta will bring:

  1. The same Apache 2 license they currently rely on
  2. A new hosting environment operated by Terracotta with state-of-the-art forums, source control, maven infrastructure, etc. all running alongside sourceforge infrastructure that will remain in place
  3. A dedicated team of engineers working full-time on EHCache performance and features
  4. A seamless and better-integrated upgrade path to add clustering and data distribution Ehcache-based applications.
  5. Enterprise support and training for existing EHCache installations

For Terracotta users:

  1. EHCache interfaces will replace Terracotta distributed cache as a single caching interface / standard for Terracotta distributed caching
  2. A single-node version of Terracotta that can run on the desktop w/o their server array
  3. Full freedom to run on the latest version of EHCache at all times, knowing it works with Terracotta
  4. One vendor support structure for their caching interfaces / libraries as well as their scalability / reliability runtime.

Amit Pandey commented that:

first thing will ensure a seamless user experience, make sure that the integration between EHCAche and Terracotta gets tighter than today, such as offering a standalone download of EHCache with a distributed coherent backend from Terracotta. You can do that today since we’ve partnered but there is extra work that you have to do as a developer.  We'll be able to to make the joint performance of the integration different than the standalone piece with all the bytecode stuff that we’re well known for.

For Terracotta the acquisition is "definitely a competitive blow to Coherence" according to Amit. Buying Ehcache gives Terracotta an easier path to adoption for the existing Ehcache install base which Terracotta claims "numbers in the hundreds of thousands, including the vast majority of the Global 1000."  Buying Ehcache also gives more options for developers building distributed cache-based appliactions.  While Terracotta was known for transparent POJO clustering, "the transparency is our greatest strength but some also criticize us that people have to go figure that out" said Amit.  Greg Luck added:

Ehcache provies a very simple way of doing caching. I think Terracotta is simple but it requires a bit more thought. There are people who love TC for the pojo apporoach [but also] the mainstream that may not want to try something new. A lot of the sort of sizzle and attraction of TC appeals to the more cutting edge and people very pojo in their thinking but there isa whole class of folks in the J2EE world who are quite happy with a very simple api model.

Asked about the combined entitty's advantages over Coherence:

  1. Footprint.  If you’ve built your app on ehcache, and you have a simple drop in upgrade for distribution now.
  2. Multiple approaches to caching. Traditional Terracotta pojo caching as well as the api-based approach. 
  3. Open source. Greg Luck said that "Coherence is not open source. For a developer to decide to use coherence the decision needs to be made at a higher level (cto), while Ehcache and Terracotta development can start from the grass roots. So for people that want massive scale with coherence, they can start with ehcache on one node then move distributed with terracotta easily."

Greg Luck commented that he sees consolidation as important to keep competitive, even though he had rejected 3 offers from other companies in the previous years:

As you saw with SpringSource last week, there is definitely consolidation going on, partly triggered by Oracle’s acquisition of Sun. Caching and distributed caching is particular important, and there is a risk that open source projects could get shut out. There is a still an array of new competitors like Apache Dynamite, Memcached - from my point of view it’s get big or get out.

On the topic of memcached, Greg Luck talked about the integration with Terrracotta eventually improving Ehcache server, a Java competitor to memcachd that offers a RESTful api allowing it to deploy behind load balancers for easier scale across clusters: "today, each node has a 100% copy of all that data. That means to you’re limited to whatever your GC can handle.  Our customers have run up to 20gig. What happens if you want to run a terabyte sized cache? Up to this point, you couldn’t do that with ehcache.. With Terracotta we’ll figure out what the product roadmap looks like."

Ehcache will remain an Apache 2 licensed project available as today via sourceforge, Maven, etc. The acquisition means that Greg Luck is joining Terracotta, and the copyrights on the EHcache codebase is now owned byTerracotta Inc., in the same manner that JBoss years ago purchased Hibernate.  Greg Luck posted a personal note about the acquisition.

Rate this Article

Adoption Stage

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

"definitely a competitive blow to Coherence" ? by Nikita Ivanov

Competitive blow?!? We've looked at EHCache some time go for similar reasons and decided to pass. To say that something like EHCache is anywhere near to competition with Coherence or GigaSpaces is simply misunderstanding the market and/or technology.

I understand the marketing spin and all - but, please, let all be a bit realistic.

My 2 cents,

Nikita Ivanov.

GridGain - Cloud Development Platform

Competition by Cameron Purdy

Competition is good, and Terracotta has a different approach that may prove to help with some needs that had gone unaddressed by products such as our own (Oracle Coherence). Greg's got a good track record with ehcache and now he's getting paid to do what he loves. While the competitive hyperbole is silly, I nonetheless find it flattering that we (collectively) are building technology and businesses that have gone from niche to central in enterprise software (despite all the competition, our business continues to grow at "ludicrous speed"), and I find it even more flattering that companies want to compare to and compete with the product that I work on :-)


Cameron Purdy

Ps. Painful to type all this on a phone ;-)

Upon further look... by Nikita Ivanov

Ok, I went back and look at EHCache again (may be I missed a news and it introduced new features...). No - it's the same stuff:

  • - no transactions

  • - only full replication (affinity anyone?!?)

  • - RMI-based communication (yuck)

  • - no asynchronous cache operations

Which is almost exactly the same properties as Terracotta has - except now it has an API. Strange - I thought according to Ari and company API were the evil of this world :)

Anyways, I stand by my original post. Keep it cool guys and keep hyperbole at the reasonable size!


Nikita Ivanov.

GridGain - Cloud Development Platform

Re: Upon further look... by ARI ZILKA

Nikita: thanks for your input.

Couple of misstatements you made that I want to point out:
1. Transaction support is not present in either EHCache or DSO but is coming shortly
2. EHCache has replication and invalidation options. Terracotta has affinity-based replication. Between the 2 we offer as many options as any use case I have seen requires.
3. RMI-based, JGroups, JMS, all are available with EHCache. I will not comment on your opinion on is yours to have.
4. Asynchronous cache operations are indeed built in to EHCache. Different cache regions can in fact have synch or asynch replication and all is controlled via config. Very easy to use.

As for Exactly the same properties--as established above, this is not true. More importantly, it is not relevant as EHCache has _the de facto API_ in caching and we are getting behind it with dollars and people to make it even better plus keep Terracotta in lock-step with EHCache always. Terracotta has no issue with API's. If I stated otherwise, I guess I misspoke. What I always meant is that clustering and caching are 2 separate but related concerns. Clustering should not put any new and unique demands on an app if it can avoid it. In some cases, such as Gridgain or more generic master/worker clustering and interfaces are one-and-the-same and people come to a framework with clustering built in because that's the business requirement (divide and conquer). In the case of caching, developers want eviction, eventing, easy memory and cache size tuning. And they want a clustered version to "just work." This makes Terracotta and EHCache a "spaghetti and meatballs" kind of pairing...not overlapping or redundant with each other in any way.

BTW, its a shame you are so upset and stuff because grid-based computing and Terracotta go together quite the same way as caching and Terracotta and if you wanted to integrate, I am sure our community would support the effort.



Re: Upon further look... by ARI ZILKA

Woah. Sorry everyone for the horrible formatting. Strange bug in the site. That post of mine had many newlines in it. They all disappeared though :/

TC+EHCache without bootclasspath additions? by Peter Veentjer

Hi Ari,

Can the new distributed version of EHCache be used without having Terracotta needing bootclasspath additions?

Peter Veentjer
Multiverse: Software Transactional Memory

Re: TC+EHCache without bootclasspath additions? by ARI ZILKA


great question. Round about answer here (bear with me).

1. Our Hibernate product that launches Friday works w/o the bootjar. But it does need a javaagent then. This is because of some technical reasons in the Hibernate use case but I wanted to get the message out that our bootjar and associated config for locks, etc. are not present in the Hibernate product

2. Distributed cache products built on the new Terracotta+EHCache do not need a bootjar or agent at all. Unless you want to share memory directly, the old-fashioned DSO way. Both options will be available when constructing a cache (we call these copy and identity caches internally right now). Copy caches don't need bootjars or agents. Identity ones do. You, the developer, will have the freedom.



Re: TC+EHCache without bootclasspath additions? by ARI ZILKA

what does a guy need to do to get a newline in this place?


Re: TC+EHCache without bootclasspath additions? by Roshan Shrestha

Some <br /> tags and a healthy dose of "Preview"!!

Almost didn't escape the "<" and ">" tags!

Re: Competition by Billy Newport

I agree with Cameron, competition is good and while we've (from an IBM WebSphere eXtreme Scale point of view) previously only seen Terracota on small setups (2 nodes or so), I'm sure the new capabilities (static striping etc) and that it fits into EHCache which has a lot of prewritten adapters in open source software will mean we see more of him :)

It's all good for growing the market and increasing customer awareness.



IBM WebSphere eXtreme Scale Chief Architect

2 nodes or so? by Nikita Ivanov

Now, that's rough :)

On a serous note, my view (and I repeat that this is mine and somewhat biased view) Terracotta is a technology that has a very narrow applicability - but when it fits it fits like a glove. And I'm sure they scale to more than 2 nodes... :)


Nikita Ivanov.

GridGain - Cloud Development Platform

Re: 2 nodes or so? by Peter Veentjer

Why do you think tc has a narrow applicability? There is no limit on the type of application you can build on top of tc imho. So can you elaborate on that?

Peter Veentjer

Multiverse Software Transactional Memory.

Re: TC+EHCache without bootclasspath additions? by Floyd Marinescu

Sorry Ari this is a temporary bug we are adressing soon.

Re: Competition by S Iyer

Billy - your sampling seems to be way off target.

I run Field Engineering at Terracotta and the consultants on the team are routinely working on 25+ Node deployments. Although, given Terracotta's Server Based architecture, the number of Nodes isn't much of a factor in terms of determining the "enormity" of any specific usage - it is more a function of the amount of clustered I/O against that data-set.

We actually strive to reduce the number of nodes so the customer saves on H/W and Management costs since Bloat-out is not the same thing as Scale-out. You Scale-out application nodes based on Application TPS that it needs to support and Terracotta-Server JVMs (Terracotta Striping) based on clustered-data-set-sizes and I/O against that.


Re: 2 nodes or so? by S Iyer

Yep - I'd be curious to know why Mr. Ivanov feels that way too.

In the several hundred deployments Terracotta Consultants have been involved with, we have seen everything from Http-SessionClustering to DistributedCaches in various flavours/topologies/frameworks, to Data/Compute Grids to highly availabile Queues.

Applications in production today involve distributed ConcurrentHashMaps, HashMaps, LinkedLists, ArrayLists, LinkedBlockingQueues and complex object graphs in all shapes/sizes/hues. In terms of frameworks where Terracotta does the smart-replication of the underlying state - EHCache, Quartz, Hibernate 2nd Level Cache, Spring WebFlow, Spring Security come to mind as the more popular ones. And in between all of this, more esoteric usages such as using a JVM based Sequence Generator (instead of relying on an Oracle Sequence) or clustering a CyclicBarrier so one can have a quorum of JVMs before they are pressed into rotation and the list goes on...

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

15 Discuss