views:

1036

answers:

4

Does anybody have experience using the open source offering from Terracotta as opposed to their enterprise offering? Specifically, I'm interested if it is worth the effort to use terracotta without the enterprise tools to manage your cluster?

Over-simplified usage summary: we're a small startup with limited budget that needs to process millions of records and scale for hundreds-of-thousands of page views per day.

A: 

Update

What I see in the OP message is "well, I don't really know what we need (thus the lack of detailed requirements), but may be some enterprizey tool will magically solve all our problems, known and unforeseen? That would be awesome!"

With an architectural approach like this it's not gonna fly. No success stories from Teracotta would change that.

OSS is beneficial when the community around it can replace the commercial support. Suppose the guy have a problem in production. Community cannot help -- it's too small for the obscure product like this. Servers are down, business is in danger. You see? You need a commercial license up-front. No money? Well, then you're not a business, and probably not gonna become one (if nobody's willing to invest into it).

Sorry for interrupting your day-dreaming.

IMHO:

Terracotta is a clustering solution. Clustering is required for large, enterprise-grade applications. Large applications mean big budgets. Big budgets mean you can afford commercial license from Terracotta.

To put it in another way: if you don't have budget to buy it, it's probably not beneficial for your project.

Vladimir Dyuzhev
I don't agree with "large applications mean big budgets." For instance, if you are a startup handling an "enterprise volume" of data your budget is small but your needs are large.
djensen47
In general, not having the budget to buy something doesn't mean it will not help your situation. There are different trade-offs. For instance, price to buy off the shelf vs. time to build something in house.
djensen47
Startup handling "enterprise volume" would need to invest into enterprise hardware at least, and also in big backup solutions, and so on, and so on. Big budget would come from venture or angel investors, but it has to be there anyway.
Vladimir Dyuzhev
And in a long run, yes, if you don't have budget it won't help you. Even if the thing is free, you need to invest time and money into supporting the "enterprizy" infrastructure it takes. Sorry, there are no shortcuts.
Vladimir Dyuzhev
With today's cloud computing platforms, global scalability is within reach of any group, large or small. In fact, it makes sense to build your apps with a proper large-scale design but deployed small-scale, then grow as needed with demand/revenue.
jpeacock
jpeacock: I completely agree.
djensen47
Your perspective seems highly outdated for the modern world of scaled out commodity hardware/OSS software and agile businesses. For example, Gnip uses Terracotta to process up to 50k msgs/s. Are they a "large app w/large budgets"? No. They need just 2 nodes. Read more: http://tinyurl.com/5ng9yt
Taylor Gautier
Cloud-shmaud... another buzzword to sell to managers. Scalable architecture doesn't necessary require Teracotta. Mentioned Gnip would do just fine with JGroups, I'm sure. Their choice of Teracotta is, well, questionable.
Vladimir Dyuzhev
I read the Gnip success story. Well, JGroups would do just fine. The only obstacle I see is the prohibited multicast on Amazon S3, but I'm not sure if JGroups are limited to multicast -- it's just simplest solution. As for 50K TPS, it's not impressive when writing to in-memory cache.
Vladimir Dyuzhev
According to Terracotta their solution has been deployed on EC2.
djensen47
If you read that into the question, you are assuming way too much out of the question.
djensen47
Vladimir - JGroups does not write that data to disk so the heap is durable - as Terracotta does. Gnip uses that feature to back up their cluster to S3 - and in case of a full failure - restore it. And they have used that feature on several occassions when all of their EC2 instances died.
Taylor Gautier
Btw, Vladimir, I do agree with you that an application that needs HA probably needs commercial support - each is a measure of risk. But as Gnip proves - some people measure risk differently and are ok with OSS. Sure I prefer they pay - but I am still happy that they are successful with Terracotta.
Taylor Gautier
+1  A: 

You may want to take a look at JBossCache/PojoCache which is an in-memory distributed caching solution. The difference is it uses a simple API to propagate objects across your 'cluster' of caches, where as Terracotta works at the classloading/jvm level.

(They don't actually have their own JVM, but they modify classes as they are loaded to allow them to be 'clusterable')

Our company had a lot of luck with JBossCache, I'd recommend checking it out.

runT1ME
Right. Probably JBossCache (AKA JGroups?) is all they need
Vladimir Dyuzhev
How does this make any sense? The original post makes no mention of the requirements for the actual use or not of Terracotta. It asks whether they need OSS or Enterprise. Yet this response is passing judgement that Terracotta isn't necessary at all. WTF. That wasn't the question.
Taylor Gautier
JGroups is not the same as JbossCache. JbossCache makes heavy use of JGroups, which is an underlying framework for multicast and RPC. Re: Taylor. If someone asks if the HotSpot VM is good enough to do x, and I respond 'well I've had luck doing x with JRockit', how is that not helpful?
runT1ME
+3  A: 

At the moment, the Terracotta enterprise tools provide only a few features beyond the open source version around things like visualization and management (like the ability to kick a client out of the cluster). That will continue to diverge and the enterprise tools are likely to boast more operator-level functionality around things like managing and monitoring, but you can certainly manage and tune an app even with the open source tools.

The enterprise license also gives you things like support, indemnification, etc which may or may not be as important to you as the tooling.

I would urge you to try it for yourself. If you'd like to see an example of a real app using Terracotta, you should check out this reference web app that was just released:

The Examinator

Alex Miller
+4  A: 

I am in a process of integrating Terracotta with my project (a sensor node network simulator). About three weeks ago I found out about Terracotta from one of my colleagues. And now my application takes advantage of grid computing using Terracotta. Below I summarized some essential points of my experience with Terracotta.

  • The Terracotta site contains pretty detailed documentation. This article probably a good starting point for a developer Concept and Architecture Guide
  • When you are stuck with a problem and found no answer in the documentation, the Terracotta community forum is a good place to ask questions. It seems that Terracotta developers check it on a regular basis and pretty responsive.
  • Even though Terracotta is running under JVM and it is advertised that it is only a matter of configuration to make you application running in a cluster, you should be ready that it may require to introduce some serious changes in you application to make it perform reasonably well. E.g. I had to completely rewrite synchronization logic of my application.
  • Good integration with Eclipse.
  • Admin Console is a great tool and it helped me a lot in tweaking my application to perform decently under Terracotta. It collects all performance metrics from servers and clients you can only think of. It certainly has some GUI related issues, but who does not :-)
  • Prefer standard Java Synchronization primitives (synchronized/wait/notify) over java.util.concurrent.* citizens. I found that standard primitives provide higher flexibility (can be configured to be a read or write cluster lock or even not-a-lock at all), easier to track in the Admin Console (you see the class name of the object being locked rather then e.g. some ReentrantLock).

Hope that helps.

Maxim Vladimirsky