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
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)
Nutzung von Java für Business-Logik
Backend Anwendungen
Alternative zu CICS – Cobol
J2EE Standard
Wahrung der ACID Eigenschaften:
Atomicity, Consistency, Isolation, Durability
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
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
Keine Performanz ohne Multiprogrammierung
Nutzung von Java Threads
innerhalb einer Java Virtuellen Maschine
ACID Bedingungen einhalten
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
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
z/OS Unix System Services JVM
Transaktion 1 Transaktion 2 Transaktion 3
Zeit
JVM wiederverwenden oder neu starten ?
Überschriebene statische Variablen
Geladene native Bibliotheken
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)
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 .
Master JVM startet Worker JVM mit dem Aufruf
JNI_CreateJavaVM
mit der Option -Xresettable
Worker JVMs (Enclave)
virtueller Adressenraum Master JVM
(Enclaves)
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
Speichernutzung der PRJVM
Gemeinsame Nutzung des System Heaps
Transient Heap
Middleware Heap
Application Classes System Heap
System Classes
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
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
Garbage Collection des Middleware Heap
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
PRJVM Performance
Test - Anwendung
Debit
Überweisung Bankschalter Credit
TPC - A Transaktion
Test Konfiguration
Kommunikator Java DB2 Adressen Adressen Adressen Raum Raum Raum
jvmcreate jvmcreate jvmcreate jvmcreate jvmcreate
z/OS oder z/Linux Kernel
Task List
Vergleichsmessungen, IBM zSeries Rechner, 1 CPU
normale normale PRJVN JVM JVM
Linux z/OS z/OS
Testumgebung
Vergleichsmessungen
IBM zSeries Rechner, 1 CPU
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.
CICS Nutzung der PRJVM
WebSphere
CICS
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.
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
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
Top Related