Crusoe: Towards a multicomputer execution environment for Java
In this dissertation we argue that the development of software for dedicated clusters requires a particular programming model in order to maximize runtime performance and programmer productivity. We define dedicated clusters as groups of computers connected by a local network, under a single administrative domain, which act as a single entity and do not perform any tasks unrelated to the cluster. We propose an alternative model, called infrastructural transparency, which offers the notion of virtual locations, or isolates, that are decoupled from physical locations, and guarantees that no application-level sharing occurs between programs hosted by isolates. The model also provides a location-independent communication infrastructure, a rich programmer interface form management of isolate lifecycle and resources, cluster-wide failure detection and coarse-grained failure handling. We present Crusoë, an execution environment for dedicated clusters that supports the proposed programming model. Crusoe offers cross-isolate method invocation abstractions as well as high level mechanisms for management of isolates through a uniformized interface based on futures and executors. Crusoe offers a flexible resource management API that uses isolates as units of resource accounting and allows to interpose on the handling of incoming remote invocations, in order to enforce resource management policies when strict isolation is traded for the ability to communicate. Crusoe also allows to interpose on the creation of isolates, thus enabling a variety of resource management and security policies. We present implementation techniques that allow to achieve a 8–70 fold performance improvement over Java RMI when communicating between isolates within a single operating system process. ^
Major Professor: Jan Vitek, Purdue University.