Azul Making Java "Zing"
Sellers says that Azul created the Zing platform in order to broaden the reach of their technology. Many customers and potential customers were interested in using their technology, said Sellers, but most companies had already made significant investments in generic hardware, and they didn't need to add any more machines. Now, with the Zing platform, Azul can cater to those customers with generic servers. The Managed Runtime Initiative, announced last week, is another part of Azul's strategy to widen the adoption of their technology and modernize how the Java community deploys applications.
The Managed Runtime Initiative includes code contributions to the Linux kernel and an OpenJDK reference implementation that features their garbage collection algorithm. Azul has collaborated with key architects in the Linux community to have an open dialogue about enhancements that Azul has discovered. These kernel modifications should have a significant impact for Java applications running on Linux - more impact than we've seen in a while from Linux development, says Sellers.
He says Azul's OpenJDK RI will have a huge impact on the Java community because it will allow Java applications to break through hugely inefficient scalability barriers that have plagued Java architects for years. The garbage collection pausing problem in Java is addressed with a simpler GC algorithm. The RI also harnesses many of Azul's techniques that help applications speculate past the multi-threading and serialization events around locks on generic server hardware.
For companies that need management tools and a specialized JVM for handling massive usage spikes and a high volume of applications, Zing can meet their needs with consistent response times, availability, and up to a 100x increase in throughput, said Sellers. Web sites that need an even higher degree of Java scalability and reliability can still purchase Azul's Vega 3 compute appliances, which have things like read/write barrier support built directly into the hardware and can support single-instance heaps running 300GB - 400GB.
The Zing Virtual Machine and Zing Virtual Appliances are (surprising to most people) actually optimized for virtual and cloud environments. In many cases, architects will ask 'what's the overhead' for adding a layer of virtualization. This is why they will limit the layers of virtualization to a hypervisor and one JVM per virtualized guest. A larger number of virtualization layers tend to cause more inconsistencies and lack controllability. However, one JVM per guest is horribly inefficient.
In contrast, Zing is built from scratch to work better in those environments and facilitates plenty of JVMs, making virtualized Java better than unvirtualized Java in many ways. It liberates Java from the OS and optimizes runtime execution. It also has a resource monitoring and management console along with a built-in app profiling interface (for use during production). Another interesting thing about Zing is how it manages to break a lot of the scalability barriers without the Vega 3's specialized architecture. Zing's software is crafted to harness the virtual memory subsystems in newer x86 chips so that it can pull off Azul's garbage collection algorithms. The massive amount of memory bandwidth on today's silicon also helps Zing's software achieve what used to be possible only on Vega 3.
Zing is currently in beta. The GA release will be later this year.