Abstract

We have implemented a virtual machine (VM) for Java which executes on a cluster. Our cluster VM completely hides the cluster from the application, presenting a single system image (SSI) (i.e., the application sees a traditional virtual machine). At the same time it leverages the cluster to achieve improved performance for a range of applications. We show how the flexibility and constraints of the Java Virtual Machine (JVM) Specification [7] impacted the design of our cluster VM. We describe issues related to class loading and distribution-aware implementations of the bytecodes. We also point out the limits on providing a solution for completely transparent distribution of multi-threaded Java applications if one does not modify the VM or the core classes.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call