VM Economics for Java Cloud Computing: An Adaptive and Resource-Aware Java Runtime with Quality-of-Execution

Resource management in Cloud Computing has been dominated by system-level virtual machines to enable the management of resources using a coarse grained approach, largely in a manner independent from the applications running on these infrastructures. However, in such environments, although different types of applications can be running, the resources are delivered equally to each one, missing the opportunity to manage the available resources in a more efficient and application driven way. So, as more applications target managed runtimes, high level virtualization is a relevant abstraction layer that has not been properly explored to enhance resource usage, control, and effectiveness. We propose a VM economics model to manage cloud infrastructures, governed by a quality-of-execution (QoE) metric and implemented by an extended virtual machine. The Adaptive and Resource-Aware Java Virtual Machine (ARA-JVM) is a cluster-enabled virtual execution environment with the ability to monitor base mechanisms (e.g. thread cheduling, garbage collection, memory or network consumptions) to assess application's performance and reconfigure these mechanisms in runtime according to previously defined resource allocation policies. Reconfiguration is driven by incremental gains in quality-of-execution (QoE), used by the VM economics model to balance relative resource savings and perceived performance degradation. Our work in progress, aims to allow cloud providers to exchange resource slices among virtual machines, continually addressing where those resources are required, while being able to determine where the reduction will be more economically effective, i.e., will contribute in lesser extent to performance degradation.

[1]  Hai Jin,et al.  Virtual Machine Resource Management for High Performance Computing Applications , 2009, 2009 IEEE International Symposium on Parallel and Distributed Processing with Applications.

[2]  Cho-Li Wang,et al.  JESSICA2: a distributed Java Virtual Machine with transparent thread migration support , 2002, Proceedings. IEEE International Conference on Cluster Computing.

[3]  Wilson C. Hsieh,et al.  The KaffeOS Java runtime system , 2005, TOPL.

[4]  Gordon S. Blair,et al.  Using lightweight virtual machines to achieve resource adaptation in middleware , 2011, IET Softw..

[5]  Sanjay Ghemawat,et al.  MapReduce: Simplified Data Processing on Large Clusters , 2004, OSDI.

[6]  Grzegorz Czajkowski,et al.  A resource management interface for the Java™ platform , 2005, Softw. Pract. Exp..

[7]  Amer Diwan,et al.  The DaCapo benchmarks: java benchmarking development and analysis , 2006, OOPSLA '06.

[8]  Gavin Brown,et al.  The economics of garbage collection , 2010, ISMM '10.

[9]  Grzegorz Czajkowski,et al.  A resource management interface for the Java™ platform , 2005 .

[10]  Gavin Brown,et al.  Garbage collection auto-tuning for Java mapreduce on multi-cores , 2011, ISMM '11.

[11]  Ladan Tahvildari,et al.  Self-adaptive software: Landscape and research challenges , 2009, TAAS.

[12]  Chen Ding,et al.  Waste not, want not: resource-based garbage collection in a shared environment , 2011, ISMM '11.

[13]  Chandra Krintz,et al.  Application-specific garbage collection , 2007, J. Syst. Softw..

[14]  Vivek Sarkar,et al.  The Jikes Research Virtual Machine project: Building an open-source research community , 2005, IBM Syst. J..

[15]  Chandra Krintz,et al.  Online phase detection algorithms , 2006, International Symposium on Code Generation and Optimization (CGO'06).

[16]  Anees Shaikh,et al.  A Cost-Aware Elasticity Provisioning System for the Cloud , 2011, 2011 31st International Conference on Distributed Computing Systems.

[17]  Feng Mao,et al.  Influence of program inputs on the selection of garbage collectors , 2009, VEE '09.