« Terracotta, the book | Main | MapReduce vs. the RDBMS »

December 13, 2007

Javapolis 2007 Run Down (from Terracotta's PoV)

posted by ari

Man,

what a week. I just got back from beers hosted by Google and Atlassian. I spent at least 2 hours talking to Mike Cannon-Brookes, Ross Mason, and Dion Almaer (I guess I am name dropping now...ick). Very smart folks. And they were just a sample of the high caliber users at the Javapolis conference this year in Antwerp.

I wanted to get to so many talks but ended up pinned down at Terracotta's booth for about 12 hours a day all week designing applications with developer after developer. I was surprised how many are coming to us planning to use Terracotta and just having a few questions. I would say the ratio was 1:1 people who had never heard of us and people who had.

At the end of the conference, I got quite good at explaining what we are:

"JVM-level clustering that helps you build apps that can spread out across many hardware nodes w/o custom APIs, serialization, etc. TC provides a simple pure-Java programming model, scalability _much_ faster that of replication-based clustering because it weaves itself into memory and pushes only deltas, and at the same time, TC provides database-like availability."

People got that. In 30 seconds flat, they got it. "So you mean I can just use threads and objects and not call APIs? No messaging?" "Are you telling me I don't have to keep scaling my database? I can just write objects in memory and they won't get lost?" Things like that. "Very cool. How much? Open source? Free? Wow. I will go try it this weekend."

Now, for the interesting tidbit. All the "hard problems" that TC users brought to me were solved by different means than they had expected. One developer had a mission critical system that needed to spread across 2 datacenters and could NEVER lose a transaction, otherwise the end customer could steal money from the business by reclaiming goods from 1 server in 1 datacenter and then, under a split-brain scenario, claiming the goods a 2nd time from a server in the other datacenter. We solved his WAN-based active-active need together in real time.

Another user needed to create a giant graph of all possible routes between thousands of locations world-wide. He then wanted to cache the routing table and serve queries against that table, but in a linearly scalable, scaled-out fashion, on 32 bit JVMs. We solved this one too.

The solution was always 1 of 2 things:
1. Master / Worker and some sort of divide and conquer
2. Partitioning with implicit locality and some sort of stateless load balancer sending traffic to the same node w.r.t. a particular data key

I guess the most popular use case was HTTP session replication, but that one I tend to forget because we answer the "Why TC instead of the app-server built-in option?" question with graphs, performance charts, and app server vendor partners who like to bundle us--like Geronimo.

I think I need to write a blog entry just about implicit locality. I still owe everyone a summary on performance and scalability in enterprise architectures. I will get to that next week (as the year slows down, I get more time to write here.)

Cheers,

--Ari

Trackback Pings

TrackBack URL for this entry:
http://blog.terracottatech.com/cgi-bin/mt/mt-tb.cgi/32

Comments

Well, is Geronimo really a good example given they don't have built-in session replication? Are you working with other application servers? Having both options (built-in and TC) sounds good to me.

Posted by: John Doer at December 16, 2007 11:45 AM

We work with many app servers. Tomcat, Jetty are where we get the most questions. (Weblogic and Websphere cost more money for clustered apps so the answer for those 2 is dollar-savings but Tomcat and Jetty are both free, clustered or not.)

Anyways, Tomcat and Jetty folks both like Terracotta a lot. The choice is there which makes people happy. But the trade-offs for TC are few--namely 2 vendors instead of one. This is why we have partnerships with Covalent (Tomcat) and Webtide (Jetty). Those 2 communities maintain their Terracotta integration themselves and officially support TC under their container.

Thanks for the question! I was unclear before.

--Ari

Posted by: Ari Zilka at December 20, 2007 9:56 AM