36
Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle IBM Forschung und Entwicklung, Böblingen Prof. Dr.-Ing. Wilhelm G. Spruth Institut für Informatik, Universität Leipzig Schickard Institut für Informatik, Universität Tübingen CECMG, Ulm, 23. April 2004

Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

Embed Size (px)

DESCRIPTION

Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle IBM Forschung und Entwicklung, Böblingen Prof. Dr.-Ing. Wilhelm G. Spruth Institut für Informatik, Universität Leipzig Schickard Institut für Informatik, Universität Tübingen. CECMG, Ulm, 23. April 2004. - PowerPoint PPT Presentation

Citation preview

Page 1: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

Persistent ReusableJava Virtual Machine

 Dipl.-Inf. Marc Beyerle

IBM Forschung und Entwicklung, Böblingen

Prof. Dr.-Ing. Wilhelm G. SpruthInstitut für Informatik, Universität Leipzig

Schickard Institut für Informatik, Universität Tübingen

CECMG, Ulm, 23. April 2004

Page 2: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

Leading Edge Technology

Einzigartige zSeries und z/OS Eigenschaften:

Architektur: Hardware Protection Key (Buffer Overflows)

Hardware-Technologie - Zuverlässigkeit

Ein-/Ausgabe-Architektur *

Clustering, Sysplex, Coupling Facility *

Partitionierung und PR/SM LPAR Mode *

Goal-orientierter Workload-Manager

Persistent Reusable Java Virtual Machine

* (siehe Veröffentlichung)

Page 3: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

Nutzung von Java für Business-Logik

Backend Anwendungen

Alternative zu CICS – Cobol

J2EE Standard

Wahrung der ACID Eigenschaften:

Atomicity, Consistency, Isolation, Durability

Page 4: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

Java Virtuelle Maschine

Web Servlets Server JSPs EJBs SQL

HTTP Servlet EJB Server Container Container Backend

Java Application Server Datenbank

Browser Web Application Server Server

HTML

Page 5: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

Web DatenbankServer WebSphere Server

Java Application Server

HTTP Se. EJB DBServer Client

Servlet Administration Server

Web Application ServerGemeinsame JVM für Servlet Engine und EJB Container

kein RMI für Servlet - EJB Kommunikation

Applic

Admin

Page 6: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

Keine Performanz ohne Multiprogrammierung

Nutzung von Java Threads

innerhalb einer Java Virtuellen Maschine

ACID Bedingungen einhalten

Page 7: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

The existing application isolation mechanisms, such as class loaders, do not guarantee that two arbitrary applications executing in the same instance of the JVM will not interfere with one another.

Grzegorz Czajkowski, Laurent Daynès: Multitasking without Compromise: a Virtual Machine Evolution.

http://research.sun.com/projects/barcelona/papers/oopsla01.pdf

Siehe auch: Bo Sandén, Coping with Java Threads.

Computer, Vol. 37, Nr. 4, April 2004, p. 20

Page 8: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

12

Applic

Admin

Clone 3

Web DatenbankServer WebSphere Server

Java Application Server Clones

HTTP Se. EJB Server DB

Client

Servlet Administration Server

Mehrfache Clones des Java Application Serversjeder Clone mit einer eigenen Java Virtuellen Maschine

Page 9: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

z/OS Unix System Services JVM

Page 10: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

Transaktion 1 Transaktion 2 Transaktion 3

Zeit

JVM wiederverwenden oder neu starten ?

Überschriebene statische Variablen

Geladene native Bibliotheken

Page 11: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

Bei der Initialisierung einer JVM werden etwa 60 System Klassen geladen sowie 700 Array-Objekte und über 1000 non-Array-Objekte allokiert und angelegt.

Pfadlänge “between 20 and 100 million instructions”

Lösung: JVM mit Reset Methode - ResetJavaVM

Persistent Reusable Java Virtual Machine (PRJVM)

Page 12: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

Es ist möglich, dass die Ausführung einer Transaktion die PRJVM in einen Zustand unresettable versetzt. Dies kann auf einem asozialen, jedoch legalen Verhalten der Tansaktion beruhen.

Beispiele  

     übrig gebliebene geöffnete Files,

     noch existierende „user threads“

     Referenzen in den Transient Heap durch lokale Variablen.  

Wenn eine dieser Bedingungen auftritt, erzeugt der

Aufruf ResetJavaVM den Rückgabewert false .

Page 13: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

Master JVM startet Worker JVM mit dem Aufruf

JNI_CreateJavaVM

mit der Option -Xresettable

Worker JVMs (Enclave)

virtueller Adressenraum Master JVM

(Enclaves)

Page 14: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

Ablaufsteuerung der PRJVM

Create Master JVMCreate Worker JVMsStart Transaktionen

while Verarbeitung laufender Transaktionenwarten auf neue Transaktion

select Worker JVMordne Transaktion zu

TransaktionsendeJVM Resettable ?

Worker JVM zerstörenCreate neue Worker JVM:

ja

nein

Page 15: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

Speichernutzung der PRJVM

Gemeinsame Nutzung des System Heaps

Transient Heap

Middleware Heap

Application Classes System Heap

System Classes

Page 16: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle
Page 17: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

Byte-Codes and JITed Code shared between multiple JVMs

Middleware is written to have a native launcher application which manages life-cycle and re-use of PR- JVMs

Launcher uses an augmented set of JNI APIs to manage PRJVMs and inject work into them

Page 18: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

Mehrfache PRJVMs in einem virtuellen Adressenraum

Virtueller Adressraum

Worker Worker Worker Master

Enclave Enclave Enclave Enclave

PRJVM PRJVM PRJVM PRJVM

T = Transient Heap, M = Middleware Heap, S = System Heap

T

M

S

T

M

S

T

M

S

T

M

S

. M

Page 19: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

Garbage Collection des Middleware Heap

Page 20: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

Architekturanalyse der Java VirtualMachine unter z/OS und Linux

Diplomarbeitvorgelegt von

Marc Beyerle

Eberhard-Karls-Universität TübingenWilhelm-Schickard-Institut für Informatik

29. September 2003

Page 21: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

PRJVM Performance

Test - Anwendung

Debit

Überweisung Bankschalter Credit

TPC - A Transaktion

Page 22: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

Test Konfiguration

Kommunikator Java DB2 Adressen Adressen Adressen Raum Raum Raum

jvmcreate jvmcreate jvmcreate jvmcreate jvmcreate

z/OS oder z/Linux Kernel

Task List

Page 23: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

Vergleichsmessungen, IBM zSeries Rechner, 1 CPU

normale normale PRJVN JVM JVM

Linux z/OS z/OS

Testumgebung

Vergleichsmessungen

IBM zSeries Rechner, 1 CPU

Page 24: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

Normale normale Verhältnis PRJVM Verhältnis JVM JVM zLinux PRJVM zu

zLinux z/OS zu z/OS z/OS normale JVM

Tx/s Tx/s Tx/s1,223 0,796 1,54 261,04 327,94

Test Ergebnis

Reguläre JVM 0,8 Transaktionen/Sek

PRJVM 260 Transaktionen/Sek.

Page 25: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle
Page 26: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle
Page 27: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

CICS Nutzung der PRJVM

Page 28: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

WebSphere

Page 29: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

CICS

Page 30: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle
Page 31: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle
Page 32: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

Ausblick

► PRJVM derzeitig als Bestandteil von WebSphere 5.0 und der CICS und IMS Transaction Server unter z/OS verfügbar.

► Ergebnisse sind vielversprechend für den zukünftigen Einsatz von Java und der PRJVM in Hochleistungs-Transaktionssystemen.

► Der Ansatz, in jedem Augenblick nur eine Transaktion pro JVM zuzulassen, dürfte ohne die Möglichkeit einer seriellen Wiederbenutzbarkeit in vielen Fällen zu nicht akzeptablen Transaktionsraten führen.

Page 33: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

Literatur

Marc Beyerle : Architekturanalyse der Java Virtual Machine unter z/OS und Linux.Diplomarbeit, Schickard Institut für Informatik, Universität Tübingen, 2003. 

Sam Borman, Susan Paice, Matthew Webster, Martin Trotter, Rick McGuire(*), Alan Stevens, Beth Hutchison, Robert Berry: A Serially Reusable Java(tm) Virtual Machine Implementation for High Volume, Highly Reliable, Transaction Processing. IBM Technical Report TR 29.3406. 

D. Dillenberger, R. Bordawekar, C. W. Clark, D. Durand, D. Emmes, O. Gohda, S. Howard, M. F. Oliver, F. Samuel, R. W. St. John: Building a Java virtual machine for server applications: The JVM on OS/390. IBM Systems Journal, Volume 39, Number 1, 2000. 

P. Herrmann, U. Kebschull, W.G: Spruth: Einführung in z/OS und OS/390.Oldenbourg-Verlag, 2. Auflage, 2004, ISBN 3-486-27393-0. 

New IBM Technology featuring Persistent Reusable Java Virtual Machines. IBM Form No. SC34-6034-01, October 2001. 

Matthew Webster: The IBM Persistent Reusable JVM.SHARE Technical Conference, Nashville, TN, March 3- 8, 2002http://www.share.org/proceedings/sh98/data/S8351.PDF

Page 34: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle

Veröffentlichungen   

Udo Kebschull, Paul Herrmann, Wilhelm G: Spruth:Einführung in z/OS und OS/390.Oldenbourg-Verlag, 2. Auflage, 2004, ISBN 3-486-27214-4. Wilhelm G. Spruth, Erhard Rahm: Sysplex-Cluster Technologien für Hochleistungs-Datenbanken.Datenbank-Spektrum, Heft 3, 2002, S. 16-26. Joachim Franz, Wilhelm G. Spruth:Reengineering von Kernanwendungssystemen auf Großrechnern. Informatik Spektrum, Band 26, Nr. 2, April 2003, S. 83-93. Helge Lehmann, Wilhelm G. Spruth: Eigenschaften einer modernen Ein-/Ausgabe Architektur. it - Information Technology (vormals it+ti), 2003, Volume 45, Issue 01, S. 20-29. Joachim von Buttlar, Wilhelm G. Spruth: Virtuelle Maschinen. zSeries und S/390 Partitionierung. IFE - Informatik Forschung und Entwicklung, to be published.

Die meisten Veröffentlichungen sind unter http://www-ti.informatik.uni-tuebingen.de/~spruth/publish.html verfügbar

Page 35: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle
Page 36: Persistent Reusable Java Virtual Machine Dipl.-Inf. Marc Beyerle