Terracotta versus Hadoop
I have had at least 10 companies ask me to compare and contrast Terracotta with Hadoop in the past 30 days. This question, to me, is an easy trap in which to fall.
Hadoop is recursion-based (MapReduce). You can't express all programatic constructs in recursion very easily, in my opinion.
Terracotta and Ehcache work in Java and .Net. Those languages are full programming languages, devoid of query constructs but rich in data structure constructs.
To me, the question is not how many TPS each of us can deliver or how much data one can handle versus the other. It is a question of right tool for the job.
My answer: most shops should have both Hadoop and Terracotta in use. Think about it this way. Terracotta is generally part of read/write business systems that you might call transactional (not meaning XA / 2-phased commit). Hadoop is generally part of read-only analytics systems you might call business intelligence. Hadoop is used to create cool things like Yahoo's predictive-typing feature in their search engine. Terracotta is used in financial services to execute more trades per hour or run algorithmic trading solutions faster or in gaming to handle more gamers per day. Terracotta is used to make sure no state is lost if Java or .Net apps stop running mid-day. Hadoop is used to crunch massive datasets looking for patterns.
I say use both. What do you think? Do you want more info from me on my perspective? I am happy to put technical detail behind these claims. Just want to see if anyone out there is contemplating a "A vs. B" decision like I have been seeing. If everyone agrees with me, then I will just stop here.
Let me know what you want to hear.
Cheers,
--Ari