A Performance Study of Clustering Web Application Servers with Distributed JVM

A Distributed Java Virtual Machine (DJVM) is a cluster-wide set of extended JVMs that enables parallel execution of a multithreaded Java application. It has proven effectiveness for scaling scientific applications. However, leveraging DJVMs to cluster real-life web applications with commercial server workloads has not been well studied. This paper presents a new generic clustering approach based on DJVMs that promote user transparency and global object sharing for web application servers. We port Apache Tomcat to our JESSICA2 DJVM and study the performance of a wide range of web applications running on the server. Our experimental results show that this approach can scale better than the traditional clustering approach, particularly for cache-centric web applications.

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

[2]  Kourosh Gharachorloo,et al.  Towards transparent and efficient software distributed shared memory , 1997, SOSP.

[3]  Assaf Schuster,et al.  JavaSplit: a runtime for execution of monolithic Java programs on heterogenous collections of commodity workstations , 2003, 2003 Proceedings IEEE International Conference on Cluster Computing.

[4]  Michael Factor,et al.  cJVM: a single system image of a JVM on a cluster , 1999, Proceedings of the 1999 International Conference on Parallel Processing.

[5]  Cho-Li Wang,et al.  Efficient global object space support for distributed JVM on cluster , 2002, Proceedings International Conference on Parallel Processing.

[6]  Assaf Schuster,et al.  Transparently Obtaining Scalability for Java Applications on a Cluster , 2000, J. Parallel Distributed Comput..