Transparent Distributed Threads for Java

  • Tagung:

    Konferenzartikel 

  • Autoren:

    Bernhard Haumacher
    Thomas Moschny
    Jürgen Reuter
    Walter F. Tichy

  • Summary

    Remote method invocation in Java RMI allows the flow of control to pass across local Java threads and thereby span multiple virtual machines. However, the resulting distributed threads do not strictly follow the paradigm of their local Java counterparts for at least three reasons: Firstly, the absence of a global thread identity causes problems when reentering monitors. Secondly, blocks synchronized on remote objects do not work properly. Thirdly, the thread interruption mechanism for threads executing a remote call is broken. These problems make multi-threaded distributed programming complicated and error prone. We present a two-level solution: On the library level, we extend KaRMI, a fast replacement for RMI, with global thread identities for eliminating problems with monitor reentry. Problem with synchronization on remote objects are solved with a facility for remote monitor acquisition. Our interrupt forwarding mechanism enables the application to get full control over its distributed threads. On the language level, we integrate these extensions with JavaParty’s transparent remote objects to get transparent distributed threads. We finally evaluate our approach with benchmarks that show costs and benefits of our overall design.

  • Jahr:

    2003 

  • Links:

Bibtex

@inproceedings{,
author={Bernhard Haumacher, Thomas Moschny, J{\"u}rgen Reuter, Walter F. Tichy},
title={Transparent Distributed Threads for Java},
year=2003,
month=Apr,
booktitle={Proceedings of the 5th International Workshop on Java for Parallel and Distributed Computing in conjunction with the International Parallel and Distributed Processing Symposium (IPDPS 2003)},
url={https://ps.ipd.kit.edu/downloads/ka_2003_transparent_distributed_threads_java.pdf},
abstract={Remote method invocation in Java RMI allows the flow of control to pass across local Java threads and thereby span multiple virtual machines. However, the resulting distributed threads do not strictly follow the paradigm of their local Java counterparts for at least three reasons: Firstly, the absence of a global thread identity causes problems when reentering monitors. Secondly, blocks synchronized on remote objects do not work properly. Thirdly, the thread interruption mechanism for threads executing a remote call is broken. These problems make multi-threaded distributed programming complicated and error prone. We present a two-level solution: On the library level, we extend KaRMI, a fast replacement for RMI, with global thread identities for eliminating problems with monitor reentry. Problem with synchronization on remote objects are solved with a facility for remote monitor acquisition. Our interrupt forwarding mechanism enables the application to get full control over its distributed threads. On the language level, we integrate these extensions with JavaParty’s transparent remote objects to get transparent distributed threads. We finally evaluate our approach with benchmarks that show costs and benefits of our overall design.},
number={ISBN-0-7695-1926-1},