Bob Pasker, co-founder of WebLogic, has been involved in Java since the beta one release in 1995. Now, Azul Systems is at the forefront of building large-scale, long running applications in Java. In this tech talk, given at JavaOne 2006 in San Francisco, Pasker describes how Azul overcomes obstacles such as the locking problem in Java through consolidation and application behavior. Topics include:
- Progressing the Java platform forward
- Competing with garbage collector
- Reducing the interference from the Java Virtual Machine on the application execution
- Feeding processing power
- Network attached processing
- Future directions for the technology
Watch Bob Pasker on Advanced Java
Interesting presentation. I was struck by the comments regarding the proliferation of boxes in the middle tier as # of applications grows, each of which want isolation from each other. At a certain point a single box becomes insufficient for the demand, and you add additional boxes with some kind of cluster or load balancing mechanism. Bob pointed out that a single JVM has trouble taking advantage of highly parallel systems beyond ~ 4 procs / 4G RAM.
If you listen to the presentation, you'll hear how Azul solves this problem, but the same TCO benefits are described by proponents of virtualization, for the same reasons. Of course, virtualization doesn't give you a new thread locking mechanism for the JVM, or a fancy garbage collector, but it does let you solve scalability problems with the same clustering/load balancing mechanisms that you'd use with many boxes except that now you're running on a single piece of hardware with multiple VM's still operating in strict isolation.
It seems to me that virtualization is basically another way to approach this same problem, of course with tradeoffs in that it's a more general solution. If you really have a fully-Java-based middle tier that would otherwise have 100's of systems, Azul is probably very cost effective. In my organization we have thousands of systems, maybe 1/3 - 1/2 of which are effectively application servers, but the applications they're hosting are very heterogeneous. There's plenty of Java, but also .Net and other things.
Virtualization is a nice fit for this environment, in that it's kind of a "know nothing" approach that gives us the benefits that Bob is talking about in a format that is easy to migrate to incrementally and non-invasively.
James, those are really good points.
I think the main difference, i think, between Azul and the kind of virtualization you describe is that the cost to build a cluster of whitebox servers that can provide the same service level guarantees under unpredictable loads is much higher. clusters of whiteboxes don't handle unpredictable loads very well, unless they are extremely lightly loaded (under 5%) or you are willing to run higher utilization rates and take response time sluggishness.
I see nothing here that changes the basic scalability equation.
SUN, IBM maybe even Oracle have products which try to reinvent the mainframe. So the tension between distributed and consolidated rolls on.
However, having watched the presentation, I would say that a 400 way box is not going to solve any real problems (how does the 400 way box cluster with a 4 way box? Every resource is exhaustable) considering that projects want their own servers for a good reason...differing SLAs and that there is no good way to handle "unexpected loads" and insulate other applications on the grid. The only thing worse than an "unexpected load" is a load that affects multiple customers whose apps would have stayed up if not for the "unexpected load"
When you have to explain to the customer
"Well your app never went down but the grid went down"
We will be in a brave new world where servers are like the power company. But the reality is each application
has its own SLA contract and you cant explain away unavailability based on a grid concept when you are under contract.
Show me the IO, Memory, Disk, Network and CPU scheduler that will absolutely prevent one app from affecting another.
On any OS with any # of CPUs.
Holy Grail anyone?
The java VM has nothing to do with it. If the technology was there it would be there for Java, ruby, .NET, smalltalk C++ and the rest.
It aint there. Can I download the flavor of Linux that will run a 400 way CPU? um yeah. Just a few years ago the flavor of windows that ran 16 way cost 1 million dollars.
Thanks but no thanks. Scalability has grown beyond the big box. But Im not going to ding someone for tryin.
If it wasnt for the small boxes, scalability wouldnt even be a word in the lexicon.
Please this talk has nothing to do with advanced Java
But how to sell grid harware.
Please quote the "advanced java" in the title.
i agree the title is misleading. --bob