Skip navigation
2006
manik

JBoss Cache on Steroids

Posted by manik Apr 21, 2006
We've been yelling about this from the rooftops and I'm sure everyone's as excited about this as I am - one the key features of JBoss Cache 1.4.0 "Jalapeno" is Buddy Replication and Data Gravitation. Exciting technologies that will help the JBoss clustering stack scale much, much better for large clusters.

 

But there are couple interesting features about Jalapeno, which should be allowed to share the limelight with Buddy Replication.

 

Replication performance

 

First of all, there are big changes in the way we marshal method calls for RPC and data replication. This has resulted in very significant performance boosts in replication, regardless of the size of your cluster. Clustering efficiency has just been turbocharged. :-)

 

Preliminary tests have come back with the following results:
  • 20 threads, 1000 loops, replicating 10k of data.
  • Running in synchronous replication mode with no transactions.
  • 3 server cluster.

 

Results using the original marshalling mechanism

Total time spent (ms): 127599 for 1000 loops

Throughtput: 156 requests/sec

Results using the new, optimised marshalling mechanism

Total time spent (ms): 97196 for 1000 loops

Throughtput: 205 requests/sec

Over 30% increase in throughput and almost 25% quicker in overall timings.

 

So what about CPU usage? We then attached a profiler to these tests to analyse how much time is spent in the replication code. The key thing to look for is time spent in RpcDispatcher.handle().

 

 

Again, both in absolute time (26 secs vs. 20 secs) and relative time (26.5% vs. 20.8%) we see over 20% reduction in CPU time, despite handling 30% greater throughput.

 

PojoCache performance

 

Next, on PojoCache (previously called JBossCacheAop) headed by Ben Wang, we also see significant performance enhancements by performing bulk cache updates and removes during pojo attachment and detachment. Pojo-level operations have a speed improvement of a factor of 2, significant stuff. In addition, there is support for pojo field annotations in JDK5.0 such as @Transient and @Serializable.

 

Expect big things from Jalapeno. With Buddy Replication and such replication performance boosts, this certainly is going to be a very exciting release.

 

--
Manik Surtani
Lead, JBoss Cache
Much anticipated, JBoss Cache 1.3.0.GA, codenamed "Wasabi" has finally been released. And this is a monster of a release - lots of long awaited features including optimistic locking, invalidation, the ability to configure more than one cache loader, a new programmatic Option API to allow for configuration overrides on a per invocation basis, a few new remote cache loaders that allow you to use the a dedicated remote host with a lot of physical RAM as a cache loader, and plenty of overall performance enhancements, particularly around cache loaders.

 

 

I'd like to thank all contributors on the JBoss Cache project for making this possible - JBoss employees, partners, external contributors, everyone. There has been a lot of participation in this release in particular. Everything from features to fixes, performance enhancements to helping track down obscure concurrency issues, open discussion of designs and ideas to actually implementing some of them, the community has been a huge part of this release. This is what open source and the JBoss user community is all about. Thank you all again, you know who you are.

 

 

So what next then? JBoss Cache 1.4.0 "Jalapeno" is the next major release, with an aggressive release schedule, due in a very short few weeks. This is a very focused release, on a few specific features (namely buddy replication and some dramatic performance enhancements in replication we have in mind). We expect Jalapeno to blow your mind as well, expect early alphas of Jalapeno in the near future.

 

 

  • Download JBoss Cache 1.3.0.GA "Wasabi" here.
  • Discuss JBoss Cache 1.3.0.GA "Wasabi" here.
  • Read JBoss Cache 1.3.0.GA "Wasabi" documentation here.

Enjoy your wasabi,
--
Manik Surtani
Lead, JBoss Cache