Zero Overhead Java Thread Migration

نویسندگان

  • Sara Bouchenak
  • Daniel Hagimont
چکیده

The wide di usion of Java is partly due to its mechanisms for mobile computing. Java provides most of the functions required to implement mobile applications, essentially code mobility (i.e., dynamic class loading) and data mobility (i.e., object serialization). However, Java does not provide any mechanism for the mobility of the computation (i.e., threads migration). Several projects have addressed the issue of Java thread migration, e.g., Sumatra, Wasp, JavaGo, Brakes, CIA. Most of these projects have attempted to minimize the overhead incurred by the migration mechanisms on applications performance, but none of them has been able to completely avoid this overhead. We propose a Java thread migration mechanism that does not incur any performance overhead on migratory threads. In this report, we present the design choices which allowed us to cancel the performance overhead, and we describe the implementation of our thread migration prototype in Sun Microsystems' JDK. We report on the experimental results that con rm the elimination of the performance overhead. Key-words: threads, migration, performance, type inference, dynamic deoptimization, Java, virtual machines Migration de threads Java sans surcoût Résumé : Le large succès qu'a connu Java est en partie dû à ses mécanismes de mobilité, tels que les outils de mobilité du code (chargement dynamique de classes) ou les fonctions de mobilité des données (la sérialisation d'objets). Cependant, Java ne fournit pas de mécanisme pour la mobilité de l'exécution (migration de threads). Plusieurs projets se sont récemment intéressés au problème de migration de threads Java, tels que Sumatra, Wasp, JavaGo, Brakes et CIA. La plupart de ces projets proposent des solutions qui minimisent le surcoût induit par la migration sur les performances des applications migrantes, sans annuler ce surcoût. Nous proposons un mécanisme de migration de threads Java qui n'induit aucun surcoût sur les performances des threads migrants. Dans ce rapport, nous présentons les choix de conception qui nous ont permis d'annuler le surcoût et décrivons la mise en ÷uvre de notre prototype de migration de threads dans le JDK de Sun Microsystems. Nous présentons également les résultats de l'évaluation de notre mécanisme, résultats qui con rment l'élimination de tout surcoût sur les performances des threads migrants. Mots-clés : threads, migration, performence, inférence de types, désoptimisation dynamique, Java, machines virtuelles Zero Overhead Java Thread Migration 3

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Lightweight Transparent Java Thread Migration for Distributed JVM

A distributed JVM on a cluster can provide a highperformance platform for running multi-threaded Java applications transparently. Efficient scheduling of Java threads among cluster nodes in a distributed JVM is desired for maintaining a balanced system workload so that the application can achieve maximum speedup. We present a transparent thread migration system that is able to support high-perf...

متن کامل

USENIX Association Proceedings of the 6 th USENIX Conference on Object - Oriented Technologies and Systems ( COOTS ' 01 )

Today, mobility and persistence are important aspects of distributed applications. They have many fields of use such as load balancing, fault tolerance and dynamic reconfiguration of applications. In this context, the Java virtual machine provides many useful services such as dynamic class loading and object serialization which allow Java code and objects to be mobile or persistent. However, Ja...

متن کامل

Making Java Applications Mobile or Persistent

Today, mobility and persistence are important aspects of distributed applications. They have many fields of use such as load balancing, fault tolerance and dynamic reconfiguration of applications. In this context, the Java virtual machine provides many useful services such as dynamic class loading and object serialization which allow Java code and objects to be mobile or persistent. However, Ja...

متن کامل

Efficient Java thread serialization

The Java system supports the transmission of code via dynamic class loading, and the transmission or storage of data via object serialization. However, Java does not provide any mechanism for the transmission/storage of computation (i.e., thread serialization). Several projects have recently addressed the issue of Java thread serialization, e.g., Sumatra, Wasp, JavaGo, Brakes, Merpati. But none...

متن کامل

Experiences implementing efficient Java thread serialization, mobility and persistence

Today, mobility and persistence are important aspects of distributed computing. They have many fields of use such as load balancing, fault tolerance and dynamic reconfiguration of applications. In this context, Java provides many useful mechanisms for the mobility of code via dynamic class loading, and the mobility or persistence of data via object serialization. However, Java does not provide ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2002