Simon Haslam's Oracle Fusion Middleware blog

The Rise and Fall of JRockit Virtual Edition

Here's an end of year post that has been sitting as draft, waiting to be finished & published, for a few months now...

Every now and then in the IT industry we see innovations which really are very different to what's come before. Some of these turn into a big things, some rather less so, and almost all take far far longer to become established than the hype would suggest. Then there are conversations had late at night in the bars at conferences, where we wonder how, if we only invented something or other, we would change the world. One such example I have discussed many a time is "Why hasn't anyone produced a processor that runs Java"?

Now leaving aside the technicalities, or even desirability, of such a CISC processor, the next best thing has already been invented by BEA Systems, under the moniker of Liquid JVM. This is a JVM which runs on top of a type 1 hypervisor, doesn't need an operating system as such and, if you believe marketing, is therefore blazingly fast. Well, this approximately true - whilst it does actually have its own operating system-style kernel, it certainly feels quick.

This hypervisor version of the JRockit virtual machine product, running on the VMware ESX 3 hypervisor, was one of the products Oracle picked up when it acquired BEA systems in 2008. Oracle then did a bit of a rebrand - Liquid VM became JRockit Virtual Edition (JRVE) and was then packaged up with WebLogic into WebLogic Server Virtual Edition (WLS-VE).

My friend, and fellow Oracle middleware fan, Jacco Landlust blogged about JRVE last summer, though I didn't get around to playing with it until Mark Prichard's Hands-on Lab at Oracle OpenWorld 2010. Since then I have been hooked. As a product I'd say it's "production ready" (i.e. stable), though not really "production friendly" as it still needs quite a skilled administrator to set up the initial deployment. If you'd like to read a few suggestions have a look at a comment I made on the OTN WebLogic Server Virtual Edition forum... unfortunately since I first started writing this blog post the forum seems to have been deleted, or at least hidden, from OTN (and which just goes to show if you have content of value you should make sure you keep it under your own control).

WLS-VE has a few drawbacks, such as not being able to use JNI (simply because there is no "native" environment to speak of) and a lack of para-virtualised network drivers, but for pure java applications running on highly scaled and virtualised environment (aka private clouds) it appears to have a lot of potential. This was the key point I made in my UKOUG session at the Middleware SIG on 25 May (slides available on Veriton website). As I also demonstrated at my session how it is possible, though undocumented, to rebuild WLS-VE to run on top of VMware vSphere/ESXi 4.1 (which is rather handy for my lab environment).

JRockit Virtual Edition 2.0

Documentation for the latest release of JRVE was briefly up on OTN and I, fortunately, took the opportunity to download it. Note only JRVE itself has been released but it should be a straightforward job to deploy WLS 10.3.5 on top of it.

These are the new features according to the documentation:

  • Supports multiple network interfaces, multi-home IP addresses, and routing of outbound traffic.
  • Runs on Oracle VM VirtualBox in 32-bit mode (development and evaluation purpose only).
  • Provides a new service for network diagnostics.
  • Provides command-line options to upgrade an old virtual machine image.
  • Supports multiple virtual CPUs for a virtual machine.
Embarrasingly I have to say I hadn't realised you could only run JRVE 1.x on a single vCPU - clearly that is a bit of a limitation so being able to run it on multiple processors should be the most significant benefit of this release. There are no changes to the packaging and bootstrapping that I would like to see though (as per my OTN posts).

Discontinuation of JRockit Virtual Edition

Now, before we get too carried away, this is the sad part of this post: Oracle have now discontinued JRockit Virtual Edition. Here is what I have been told by Oracle:

"We are very proud of JRockit Virtual Edition, and especially of our last release JRockit Virtual Edition 2.0. We have been able to create an integrated JVM plus Operating System product which provides high performance, reduces complexity and improves the benefits of virtualization. Still, we have decided to end the product line of JRockit Virtual Edition. When we started develop JRockit Virtual Edition (then called Liquid VM) at BEA Systems five years ago we did not have an Operating System in the organization so JRockit Virtual Edition was an excellent vehicle for streamlining the Operating System layer for improved performance in virtualized environments.  Since we were acquired by Oracle, and later did acquire Sun, we got two excellent Operating Systems in the organization: Oracle Linux and Solaris. The cost of having a third Operating System team is much higher than re-allocating the resources to do similar improvements in other product layers. The primary focus of this team moving forward will be Java & Operating System optimizations. We will ensure that the unique values of JRockit Virtual Edition, such as high performance, efficiency and simplicity, will continue to evolve within Oracle Operating Systems."

You can see Oracle's commercial reasoning behind this given that the take up of WLS-VE has been very low indeed (I don't know anyone using it - that doesn't mean such customers don't exist but does mean they must be rare or very secretive). Whether this is because the product was still relatively new, was unique and so "off the radar" for architects, or simply because it cost an extra £6,703/$10,000 per Oracle Processor on top of WebLogic Suite I don't know. In addition JRockit VE was going to need engineering effort - not only the upgrade to Java 7, but for integration (probably some sort of paravirtualised driver) to support InfiniBand networking in Oracle VM Server 3.0 for Exalogic servers.

Of course there's nothing to stop another project coming along and building a JVM to run directly on top of a hypervisor; indeed there are one or two in the pipeline. Plus Azul Systems have an interesting looking product, the Vega Appliance, in this area. However it would be highly unlikely that Oracle would certify any such product to run WebLogic and the rest of the middleware stack. The only chance for such a product would be if it came from IBM or, perhaps, SAP, and Oracle couldn't afford to ignore it. IBM don't seem to have anything like this (the nearest I have found is WebSphere Application Server Hypervisor Edition, which still runs a SUSE guest, albeit hidden), and whilst SAP do have their own JVM I can't imagine you would use it with Fusion Middleware.

Conclusions

JRockit Virtual Edition is pretty piece of technology that could have given Fusion Middleware administrators a clean and efficient deployment platform for pure java applications. Whilst I suspect that ongoing tuning will mean that the performance difference between JRockit VE and JRockit running on a cut-down operating system would be marginal, the elegance and simplicity of removing the operating system layer from the configuration still has tremendous appeal to middleware administrators.

With JRockit VE Oracle had something unique in the marketplace and something that none of their competitors could easily reproduce. Whilst we can expect to see Oracle Virtual Assembly Builder trying to achieve similar deployment goals I am still to be convinced that a pre-configured operating system template will still be as neat to manage.

Comments:

Post a Comment:
  • HTML Syntax: Allowed

Search this blog

About me
Oracle ACE Director (Middleware and SOA)
Presentation downloads

Links

Feeds