PowerPoint-Präsentation

Werbung
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
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
HTML
Java Virtuelle Maschine
Web
Server
Servlets
JSPs
EJBs
SQL
HTTP
Server
Servlet
Container
EJB
Container
Backend
Java Application Server
Browser
Web Application Server
Datenbank
Server
Web
Server
Datenbank
Server
WebSphere
Java Application
Server
Applic
HTTP
Server
Servlet
Se.
EJB
DB
Client
Administration
Server
Admin
Web Application Server
Gemeinsame JVM für Servlet Engine und EJB Container
kein RMI für Servlet - EJB Kommunikation
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
Web
Server
Datenbank
Server
WebSphere
Java Application
Server Clones 1
2
Applic
HTTP
Server
Servlet
Se.
EJB
Clone 3
Administration
Server
DB
Client
Admin
Mehrfache Clones des Java Application Servers
jeder 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 .
Worker JVMs
(Enclave)
virtueller
Adressenraum
Master JVM
(Enclaves)
Master JVM startet Worker JVM mit dem Aufruf
JNI_CreateJavaVM
mit der Option
-Xresettable
Create Master JVM
Create Worker JVMs
Start Transaktionen
while Verarbeitung laufender Transaktionen
warten auf neue Transaktion
select Worker JVM
ordne Transaktion zu
Transaktionsende
JVM Resettable ?
ja
nein
Worker JVM zerstören
Create neue Worker JVM:
Ablaufsteuerung der PRJVM
Transient Heap
Middleware Heap
Application Classes
System
Heap
System Classes
Speichernutzung der PRJVM
Gemeinsame Nutzung des System Heaps
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
Virtueller Adressraum
Worker
Worker
Worker
Master
Enclave
Enclave
Enclave
Enclave
PRJVM
PRJVM
PRJVM
PRJVM
T
T
T
T
M
M
M
. M
M
S
S
S
S
T = Transient Heap, M = Middleware Heap, S = System Heap
Mehrfache PRJVMs in einem virtuellen Adressenraum
Garbage Collection des Middleware Heap
Architekturanalyse der Java Virtual
Machine unter z/OS und Linux
Diplomarbeit
vorgelegt von
Marc Beyerle
Eberhard-Karls-Universität Tübingen
Wilhelm-Schickard-Institut für Informatik
29. September 2003
Debit
Überweisung
Bankschalter
TPC - A Transaktion
PRJVM Performance
Test - Anwendung
Credit
Kommunikator
Adressen
Raum
Java
Adressen
Raum
Task
List
jvmcreate
jvmcreate
jvmcreate
jvmcreate
jvmcreate
z/OS oder z/Linux Kernel
Test Konfiguration
DB2
Adressen
Raum
Vergleichsmessungen, IBM zSeries Rechner, 1 CPU
normale
JVM
normale
JVM
PRJVN
Linux
z/OS
z/OS
Testumgebung
Vergleichsmessungen
IBM zSeries Rechner, 1 CPU
Normale
JVM
zLinux
normale
JVM
z/OS
Tx/s
1,223
Tx/s
0,796
Verhältnis
zLinux
zu z/OS
1,54
PRJVM
z/OS
Verhältnis
PRJVM zu
normale
JVM
Tx/s
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, 2002
http://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
Herunterladen