Mitch Pronschinske is the Lead Research Analyst at DZone. Researching and compiling content for DZone's research guides is his primary job. He likes to make his own ringtones, watches cartoons/anime, enjoys card and board games, and plays the accordion. Mitch is a DZone Zone Leader and has posted 2576 posts at DZone. You can read more from them at their website. View Full User Profile

Souped Up Java with Azul: Part I

02.24.2010
| 11246 views |
  • submit to reddit
Saks.com, the online arm of the famous Saks Fifth Avenue store, claimed the top spot in Gomez, Inc.'s high-broadband availability tests during the most crucial time in the e-commerce year: the Holiday season.  They beat some of the most high-performance websites on the Internet, including Zappos.com and Dell.com.  The technology behind Saks.com's success comes from Azul Systems.  Azul is a 7 year old company that has made some major breakthroughs in Java application performance thanks to several star developers like Dr. Cliff Click, their chief JVM architect.  DZone spoke with Azul CEO and Co-founder, Scott Sellers about his company's recent work on their JVM and how they specialize in the deployment side of Java applications.  Sellers explains the limitations of today's Java runtimes and how his company helps deploy enterprise-level Java workloads that scale well and perform at a high level whatever the load.

Azul's answer to the challenges of Java application deployment is a "plug and play" compute appliance called Vega 3.  This box contains all the "secret sauce" behind Azul's high performance Java solutions, says Sellers.  When a company puts the Azul box inside their datacenter, it gives Java applications a huge advantage compared to those running on a general-purpose servers.  Sellers explains, "What's inside the box is a combination of really innovative microprocessors as well as a tremendous amount of software technology that solves the limitations of Java on off-the-shelf platforms.  What's neat about it, is that we're able to take Java applications, unmodified, from any and all existing operating environments (Solaris, Linux, AIX, HP UX, even zLinux) and we can transparently offload Java applications from those legacy operating environments onto our compute appliances."  That's when Azul's appliance can work its performance and scalability magic.  The box also delivers a hardware infrastructure that is inherently virtualized and much easier to manage.  Sellers says that Azul's management tools make Java applications running on the Vega 3 appliance highly visible as opposed to the black box nature of todays JVMs.

But what if you run all of your applications on a public cloud?  Sellers says in this case they would sell to the cloud provider and he says that Azul is already working with a number of them.  He says that using the Azul appliances saves money on more than just infrastructure.  It saves on power, cooling, and management.  "Instead of buying ten or twenty servers, you can buy one of our appliances," said Sellers.

Today, Java shops can buy high-capacity servers for relatively low prices, but Sellers says that a given JVM instance can only tap into a tiny fraction of that memory.  "The way that Java applications work today is a bit of a two-edged sword.  When you get to the deployment side, this is when many of the problems associated with Java are seen," said Sellers.  "For example, it's pretty much a given that when you're running on an off-the-shelf server, and you're trying to run a memory heap size that's beyond a couple of gigabytes, inevitably that application will get hammered by the internal garbage collection process of the Java runtime.  Basically this means that at an architectural level, you have to architect your application to make sure that you never have any Java instances that are beyond 1-2 gigabytes in size."

There's a terrible disconnect between the capabilities of the hardware and what's possible given the limitations of the Java runtime.  On general application servers, an application usually needs to grow its memory footprint.  This might be because you need more state information to be held in the JRT for more users or you need to cache more information because, Sellers says, in today's three-tiered architectures you want to minimize accesses to the database.  Sellers said that everyone today is faced with this limitation of a couple of gigabytes for each Java application instance.  

With Azul's appliance, Sellers says this isn't a problem.  "We have customers that are running 300 to 400GB single-instance heaps, with worst case pause times measured in the tens-of-milliseconds," said Sellers.  "That's literally three orders of magnitude better than any other JVM or hardware platform."  Sellers made a reference to the movie Spinal Tap, saying, "you plug in Azul, you turn it up to 11, you let it take as many requests as it possibly can, it'll grow into as much memory as you need, and it won't skip a beat in terms of the response time."  

Sellers also mentions that there's traditionally a lot of tuning required to get Java applications working.  "Whether it's in banking, insurance, or web portals, customers will be spending months and months tuning all the 35+ different flags you can tune with a JVM just to get the darn thing to work somewhat reliably and consistently."  With Azul's Vega 3, customers can skip the months of tuning and get their deployments out the door quicker.  They just specify the beginning heap size setting and run the JVM, that's it.
____

In the second part of this interview, Scott Sellers talks shares his thoughts on the possible impact of the Oracle acquisition on the Hot Spot JVM , (which is the JVM that Azul enhances), and the possibility of running JVMs natively on hypervisors.