Portable and efficient distributed threads for Java

  • Authors:
  • Eli Tilevich;Yannis Smaragdakis

  • Affiliations:
  • Georgia Institute of Technology, Atlanta, GA;Georgia Institute of Technology, Atlanta, GA

  • Venue:
  • Proceedings of the 5th ACM/IFIP/USENIX international conference on Middleware
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

Java middleware mechanisms, such as Java RMI or CORBA implementations, do not support thread coordination over the network: synchronizing on remote objects does not work correctly and thread identity is not preserved for executions spanning multiple machines. The current approaches dealing with the problem suffer from one of two weaknesses: either they require a new middleware mechanism, making them less portable, or they add overhead to the execution to propagate a thread identifier through all method calls. In this paper we present an approach that works with an unmodified middleware implementation, yet does not impose execution overhead. The key to our technique is the bytecode transformation of only stub routines, instead of the entire client application. We argue that this approach is portable and can be applied to mostly any middleware mechanism. At the same time, we show that, compared to past techniques, our approach eliminates an overhead of 5.5-12 applications from the SPEC JVM suite.