The Performance Limitations of the Java Platform ... and how to avoid them
The Java platform, like other Managed Runtime Environments, is limited in terms of the amount of memory and the number of CPUs it can effectively provide to applications deployed on it. GC pauses scale linearly with memory and impose an effective limit of 1-2 GB before application pause times of a minute and more begin to occur. The "synchronized" method is large grained and its use results in lock (rather than data element) contention. When the number of CPUs / system grows, then as predicted by Amdahl's law, this large grained locking scheme severely limits the performance gains provided by additional CPUs. This presentation will examine how developers attempt to bypass these barriers today, and evaluate and compare the 3 main Java scalability design patterns (scale out, scale up, scale via external appliance). An example of the latter approach, a Java Compute Appliance, will be examined to see how an integrated approach (from the wire to the JVM) has been used to break through these barriers and allow Java applications to transparently and successfully utilize more than 100 GB of memory and 100's of CPUs.
- Not Interested