« The irony. | Main | Great post on performance. »

August 11, 2009

Massive throughput for Hibernate apps

posted by ari

Ok.

So I saw a performance benchmarking report recently. We tested JPetClinic domain model being written to through Hibernate. With Terracotta as second level cache, we could do upwards of 200,000 reads per second on 8 JVM cluster. And 150K reads / writes at 90/10 ratio (creating new pets and appointments 10% of the time) on that same 8 JVM cluster. This is 30X faster than a few options we benchmarked against (after paying experts to tune the other options...not just benchmarking on our own). The other options did more like 5K tps from the same cluster. And MySQL by itself w/o a second level cache could support 1.1K tps (136X faster for Terracotta).

I can't wait to do the webinar for everyone on what we have done in this 3.1 release. Basically, we are delivering the power and scalability of the best of distributed caching architectures--the latest and greatest in application design--but through the Hibernate / RDBMS model most apps already use. Things are really getting fun for me and for us now.

--Ari

Trackback Pings

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

Comments

I'm curious as to what kinds of queries were being run. Was it mostly reads against the primary key? Or was this also using the hibernate query cache?

Posted by: Kevin Jordan at August 12, 2009 6:21 AM

Kevin,

Great question! There is an awesome blog by Alex Miller (http://tech.puredanger.com/2009/07/10/hibernate-query-cache/) that details our understanding of query caching. We haven't done a lot of tuning of such usage of Hibernate but one of our beta testers (Ziff Davis) uses it extensively and reports it works fine. (Didn't used to before 3.1 but does now.) I think we want to work on it for our December release (3.2) some more but please try it now and let us know how it works for you. That is what I am trying to say.

Posted by: ARI ZILKA at August 12, 2009 11:54 PM

Post a comment




Remember Me?

(you may use HTML tags for style)