java + z + ims - marcel mitran presentation - nyc and toronto feb 2014
DESCRIPTION
Marcel Mitran's presentation on IBM System z Java capabilities and how they work with IMSTRANSCRIPT
© 2014 IBM Corporation
Java + z + IMS
Marcel Mitran – Chief Architect, IBM JVM on System zFebruary, 2014
© 2014 IBM Corporation222
IBM’s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM’s sole discretion. Information regarding potential future products is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver any material, code or functionality. Information about potential future products may not be incorporated into any contract. The development, release, and timing of any future features or functionality described for our products remains at our sole discretion.
IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of other IBM trademarks is available on the web at "Copyright and trademark information" at http://www.ibm.com/legal/copytrade.shtml
Other company, product, or service names may be trademarks or service marks of others.
THE INFORMATION CONTAINED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY. WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION CONTAINED IN THIS PRESENTATION, IT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. IN ADDITION, THIS INFORMATION IS BASED ON IBM’S CURRENT PRODUCT PLANS AND STRATEGY, WHICH ARE SUBJECT TO CHANGE BY IBM WITHOUT NOTICE. IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF, OR OTHERWISE RELATED TO, THIS PRESENTATION OR ANY OTHER DOCUMENTATION. NOTHING CONTAINED IN THIS PRESENTATION IS INTENDED TO, NOR SHALL HAVE THE EFFECT OF, CREATING ANY WARRANTIES OR REPRESENTATIONS FROM IBM (OR ITS SUPPLIERS OR LICENSORS), OR ALTERING THE TERMS AND CONDITIONS OF ANY AGREEMENT OR LICENSE GOVERNING THE USE OF IBM PRODUCTS OR SOFTWARE.
© Copyright International Business Machines Corporation 2011. All rights reserved.
Trademarks, Copyrights, Disclaimers
© 2014 IBM Corporation3
IBM and Java
� Java is critically important to IBM– Fundamental infrastructure for IBM’s software portfolio– WebSphere, Lotus, Tivoli, Rational, Information Management
� IBM is investing strategically for Java in virtual machines– As of Java 5.0, single JVM support
• JME, JSE, JEE– New technology base (J9/TR Compiler) on which to deliver improved performance,
reliability, serviceability
� IBM also invests in, and supports public innovation in Java– OpenJDK, Eclipse, Apache (XML, Aries, Derby, Geronimo, Harmony, Hadoop …)– Broad participation in relevant open standards (JCP, OSGi)
© 2014 IBM Corporation4
Evolving Java on Z
Portable and consumable� First-class IBM Java SDK for z/OS and z/Linux
� Providing seamless portability across platforms
Pervasive and integrated across the z eco-system� Java business logic runs with all z middleware (IMS, CICS, WAS etc)
� Inter-operability with legacy batch and OLTP assets
Deep System Z exploitation� SDK extensions enabled z QoS for full integration with z/OS
� zAAP/zIIP specialty engines provide low-cost Java capacity
Performance� A decade of hardware/software innovation and optimization
� Industry leading performance with IBM J9 Virtual Machine
� Enabling tight data locality for high-performance and simplified systems
Enable integration of Java-based applications with core z/OS backend database environment for high performance, reliability, availability, security, a nd lower total cost of ownership
© 2014 IBM Corporation5
Java Execution Environments and Interoperability
� IBM Java Execution Offerings– Transactional/Interactive
• WebSphere for z/OS (WAS z/OS)• WebSphere Process Server for z/OS (WPS)• JCICS• IMS Java• DB2 Stored Procedures
– Batch oriented• WebSphere Compute Grid (WAS-CG)
• WAS/JEE runtime extensions• IMS Java Batch regions (JMP)• JZOS component of z/OS SDK
• JES/JSE-based environment• z/OS V1R13 Java/COBOL Batch Runtime
Env.*
• JES/JSE-based, designed to inter-op with DB2 while maintaining transaction integrity
� Open Source or non-IBM vendor Application Server and Frameworks
– Tomcat, JBoss– iBatis, Hibernate, Spring– Ant
� Capitalize on pre-existing assets, artifacts, processes, core competencies, platform strengths
� COBOL/Native Interoperability– COBOL Invoke maps to JNI– RDz and JZOS** have tooling to
map COBOL copy books to Java classes
– JCICS– IMS Java, JMP/JBP– WAS CG, WOLA– etc
* See http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?subtype=ca&infotype=an&supplier=897&letternum=ENUS211-252
** Alphaworks only, and hence currently un-supported
© 2014 IBM Corporation6
1999
2009
1998
2001
2003
2005
2007
SDK1.4 1. 31-bit z/OS and 31-bit and 64-bit Linux on z2. GA 4Q20023. z/OS End of Marketing September, 20084. z/OS End of Service September, 2011
31-bit and 64-bit SDK 51. IBM J9 2.3 VM and JIT Technology2. z9 Exploitation3. GA 4Q20054. z/OS and Linux on z
31-bit SDK1.1.81. OS/390 GA 19992. Out of service
31-bit and 64-bit SDK 6 , V6.0.01. Supplies Java SE 6 APIs2. z10 Exploitation3. IBM J9 2.4 VM and JIT Technology4. GA 4Q20075. z/OS and Linux on z
31-bit SDK1.3.11. z/OS and Linux on z2. GA 3Q20003. End of Service: September, 2007
z/OS 64-bit SDK 1.4.21. IBM J9 2.2 VM and JIT Technology (1st product use)2. GA 4Q20043. End of Service September, 2008
31-bit SDK1.1.1, then 1.1.4 and 1.1.61. First OS/390 Java product – GA 19972. Out of service
2014
31-bit and 64-bit z/OS Java SDK 6 V6.0.1
1. Supplies Java SE 6 APIs2. z196 Exploitation3. New IBM J9 2.6 VM and JIT Technology4. Enhanced JZOS and z/OS Security5. z/OS Java products, GA March 2011:
System z Java Product Timeline
31-bit and 64-bit Java SDK 7.x1. z/OS and Linux on z2. Supplies Java SE 7 APIs3. OpenJDK4. z196/zEC12 Exploitation5. New IBM J9 2.6/2.7 VM and JIT
Technology6. GA Oct 2011
Testimonials: http://www-01.ibm.com/software/os/systemz/testimonials/
IBM continues to invest aggressively in Java for System z, demonstrating a rich history of innovation and performance improvements.
© 2014 IBM Corporation7
z/OS – System z Java Extensions
All SDKs support the ‘standards’, Java on z/OS exte nds the SDK� Access to z/OS services� Access to all types of data� Access under control of z/OS security mechanisms� Integration into existing operational infrastructure
Services available in JEE and JSE environments under the restrictions of the container.
SDKz/OS
Extensions
SDKBase
Function
System specific extension allow you to write robust middleware and applications that integrate with traditional z/OS operating envi ronment
� Allow for maintaining platform independent design development.� Platform specific implementations when required� Allows for operational and resource optimization
e.g. JAAS wrapper of SAF (RACF, ACF2, or TopSecret), Traditional OS dataset access, Cryptographic hardware (Cards and CPACF), z/OS Console (modify and messages), z/OS system logger, JES job submission, DFSORT, SMF, etc.
© 2014 IBM Corporation8
IBM Java Runtime Environment
� IBM’s implementation of Java 5 and Java 6 are built with IBM J9 Virtual Machineand IBM Testarossa JIT Compiler technology
• Independent clean-room JVM runtime & JIT compiler
� Combines best-of breed from embedded, development and server environments…from a cell-phone to a mainframe!
• Lightweight flexible/scalable technology• World class garbage collection – gencon, balanced GC policies
• Startup & Footprint - Shared classes, Ahead-of-time (AOT) compilation
• 64-bit performance - Compressed references & Large Pages• Deep System z exploitation – zEC12/z196/z10/z9/z990 exploitation
• Cost-effective for z - zAAP Ready!
� Millions of instances of J9/TR compiler
© 2014 IBM Corporation9
Java Road Map
Language UpdatesJava 5.0 • New Language features:
• Autoboxing• Enumerated types• Generics• Metadata
Java 6.0• Performance Improvements• Client WebServices Support
• Support for dynamic languages• Improve ease of use for SWING• New IO APIs (NIO2)• Java persistence API• JMX 2.x and WS connection for JMX
agents• Language Changes
Java 7.0
IBM Java RuntimesIBM Java 5.0 (J9 R23) • Improved performance
• Generational Garbage Collector• Shared classes support• New J9 Virtual Machine• New Testarossa JIT technology
• First Failure Data Capture• Full Speed Debug• Hot Code Replace• Common runtime technology
• ME, SE, EE
IBM Java 6.0 (J9 R24)• Improvements in
• Performance• Serviceability tooling• Class Sharing
• XML parser improvements• z10™ Exploitation
• DFP exploitation for BigDecimal• Large Pages• New ISA features
5.0
6.0
2005 2009
SE
5.0
18 p
latfo
rms
SE
6.0
20 p
latfo
rms
EE 5
WAS6.1
WAS7.0
2006 2008
WAS6.0
200704
EE 6.x
**Timelines and deliveries are subject to change.
2010 2011
IBM Java 6.0.1/Java7.0 (J9 R26)
• Improvements in• Performance• GC Technology
• z196™ Exploitation• OOO Pipeline• 70+ New Instructions
• JZOS/Security Enhancements
WAS8.5
2012 2013 2014
7.0
• Language improvements • Closures for simplified fork/join
Java 8.0**
SE
601/
7.x
>= 2
0 pl
atfo
rms
IBM Java7.0SR3• Improvements in
• Performance• zEC12™ Exploitation
• Transactional Execution• Flash 1Meg pageable LPs• 2G large pages• Hints/traps
IBM Java7.1• Improvements in
• Performance• RAS• Monitoring
• zEC12™ Exploitation• zEDC for zip acceleration• SMC-R integration• Transactional Execution• Runtime instrumentation• Hints/traps
• Data Access Accelerator
© 2014 IBM Corporation10
zEC12 – More Hardware for Java
Continued aggressive investment in Java on Z
Significant set of new hardware features tailored and co-designed with Java
Hardware Transaction Memory (HTM) Better concurrency for multi-threaded applicationseg. ~2X improvement to juc.ConcurrentLinkedQueue
Run-time Instrumentation (RI)Innovation new h/w facility designed for managed runtimes Enables new expanse of JRE optimizations
2GB page framesImproved performance targeting 64-bit heaps
Pageable 1M large pages with Flash ExpressBetter versatility of managing memory
Shared-Memory-CommunicationRDMA over Converged Ethernet
zEnterprise Data Compression acceleratorgzip accelerator
New software hints/directives/trapsBranch preload improves branch predictionReduce overhead of implicit bounds/null checks
New 5.5 GHz 6-Core Processor Chip
Large caches to optimize data serving
Second generation OOO design
Up-to 60% improvement in throughput amongst Java workloads measured with zEC12 and Java7SR3
Engineered Together—IBM Java and zEC12 Boost Worklo ad Performancehttp://www.ibmsystemsmag.com/mainframe/trends/whats new/java_compiler /
© 2014 IBM Corporation11
Storage conflict: Tran A will abortTran B will commit changes to X and Y
Hardware Transactional Memory (HTM)
� Allow lockless interlocked execution of a block of code called a ‘transaction’– Transaction: Segment of code that appears to execute ‘atomically’ to other CPUs
• Other processors in the system will either see all-or-none of the storage up-dates of transaction
� How it works:– TBEGIN instruction starts speculative execution of ‘transaction’– Storage conflict is detected by hardware if another CPU writes to storage used by the transaction– Conflict triggers hardware to roll-back state (storage and registers)
• transaction can be re-tried, or• a fall-back software path that performs locking can be used to guarantee forward progress
– Changes made by transaction become visible to other CPUs after TEND
TBEGIN
…
load Y
load X
…
TEND
CPU 0: Tran AX = Y = 0;
TBEGIN
X = 1
store X
Y = 1
store Y
TEND
CPU 1: Tran B
CPU 0 can only see (X=Y=0) or (X=Y=1) , cannot see (X=1,Y=0) or (X=0,Y=1)
© 2014 IBM Corporation12
Transaction Lock Elision on HashTable.get()Java Prototype
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Threads
Th
roug
hpu
t (o
ps/s
ec)
HTM Example: Transactional Lock Elision (TLE)
Threads must serialize despite only reading… just in-case a writer updates the hash
read_hash(key) {
Wait_for_lock();
read(hash, key);
Release_lock();
}
Thr1: read_hash()
Thr2: read_hash()
Thr3:read_hash()
T
Lock elision allows readers to execute in parallel, and safely back-out should a writer update hash
read_hash(key)
TRANSACTION_BEGIN
read hash.lock;
BRNE serialize_on_hash_lock
read (hash, key);
TRANSACTION_END
Thr1: read_hash() … Thr3: read_hash()
T’
© 2014 IBM Corporation1313
z/OS Java SDK 7:16-Way Performance64-bit Java Multi-threaded Benchmark on 16-Way
(Controlled measurement environment, results may vary)
Aggregate 60% improvement from zEC12 and Java7SR3
� zEC12 offers a ~45% improvement over z196 running t he Java Multi-Threaded Benchmark
� Java7SR3 offers an additional ~13% improvement (-Xaggressive + Flash Express pageable 1Meg large pa ges)
z/OS 1.13 Multi-Threaded 64 bit Java Workload~60% Hardware (zEC12) and Software (SDK 7 SR3) Impr ovement
0
20
40
60
80
100
120
140
160
1 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32
Threads
Nor
mal
ized
Thr
ough
put
zEC12 SDK 7 SR3Aggressive + LP Code Cache
zEC12 SDK 7 SR1
z196 SDK 7 SR1
© 2014 IBM Corporation1414
z/OS Java SDK 7: 16-Way PerformanceAggregate HW and SDK Improvement z9 Java 5 SR5 to zEC12 Java 7SR3
(Controlled measurement environment, results may vary)
~12x aggregate hardware and software improvement co mparing Java5SR5 on z9 to Java7SR3 on zEC12LP=Large Pages for Java heap CR= Java compressed references
Java7SR3 using -Xaggressive + Flash Express pageable 1Meg large pages
z/OS Multi-Threaded 64 bit Java Workload 16-Way ~12x Improvement in Hardware and Software
0
20
40
60
80
100
120
140
160
1 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32
Threads
Nor
mal
ized
Thr
ough
put
zEC12 SDK 7 SR3Aggressive + LP Code Cache zEC12 SDK 7 SR1
z196 SDK 7 SR1
z196 SDK 6 SR8
z10 SDK 6 SR4
z10 SDK 6 GM NO (CR or Heap LP)
z9 Java 5 SR5 NO (CR or Heap LP)
© 2014 IBM Corporation15
TradeLite Servlet and JSP WAS8.5 and WAS8.5 Liberty Profile on zEC12 with Jav a7SR3
0%
20%
40%
60%
80%
100%
120%
140%
160%
180%
200%
WAS8.5 on z196 WAS8.5 on zEC12 WAS8.5 Liberty on z196 WAS8.5 Liberty onzEC12 + Java7SR3
Thr
ough
put
(Nor
mal
ized
to W
AS
8.5
on z
196)
83%
15
WAS on z/OS – Servlets and JSPs with the Liberty Profile**
(Controlled measurement environment, results may vary)
� WAS8.5 Liberty on zEC12 using Java7SR3 vs WAS8.5 on z196 running TradeLite demonstrates a 83% improvement to Servlet and JSP throughput.
� WAS8.5 Liberty offers up to 5x start-up time reduct ion vs. WAS8.5 (<5 seconds)
� WAS8.5 Liberty offers reduced real-storage requirem ents up to 81% vs. WAS8.5 (80M versus 420M)
** See backup charts for list of Liberty Profile capabilities
++ Java7SR3 using -Xaggressive + Flash Express pageable 1Meg large pages
Java7SR3
zEC12
WAS Liberty
© 2014 IBM Corporation16
JCICS and Java7SR3 on zEC12
� Using complex Java workload –Axis2 webservice
� Equivalent throughput using CICS V5.1 on z196 compared to CICS V4.2
� 30% improvement in throughput using CICS V5.1 on zEC12 compared to CICS V4.2 on z196
� 39% improvement in throughput using CICS V5.1 with Java 7 zEC12 exploitation compared to CICS V4.2 on z196
0
500
1000
1500
2000
2500
3000
3500
thro
ughp
ut (
ITR
) CICS V4.2 z196
CICS V5.1 z196
CICS V5.1 zEC12
CICS zEC12 +exploitation
+30%
+39%
higher is better
0
500
1000
1500
2000
2500
3000
3500
thro
ughp
ut (
ITR
) CICS V4.2 z196
CICS V5.1 z196
CICS V5.1 zEC12
CICS zEC12 +exploitation
+30%
+39%
higher is better
(Controlled measurement environment, results may vary)
© 2014 IBM Corporation17
IMS JMP region performanceHardware stack improvements
(Controlled measurement environment, results may vary)
IMS Java - Hardware stack improvements
19838
14754
0
5000
10000
15000
20000
25000
z196 zEC12
ET
R (
Tra
n/S
ec)
Up to 32% ETR throughput increase moving same workload
(Controlled measurement environment, results may vary)
© 2014 IBM Corporation18
IMS JMP region performanceAggregate SDK, software and hardware improvements
Over 4x aggregate throughput improvement from 2009 to 2012 due to the following enhancements
� Java version to version performance improvements
� IMS improvements
� Hardware improvements
� DASD improvements(Controlled measurement environment, results may vary)
IMS Java transaction throughput from 2009 to 2012
4191
7600 84489389
12540
19838
0
5000
10000
15000
20000
25000
Jun-08 Dec-08 Jul-09 Jan-10 Aug-10 Feb-11 Sep-11 Apr-12 Oct-12
Timeline
ET
R (
Tra
n/S
ec)
© 2014 IBM Corporation19
Java 7.1 - IBM SDK for z/OS, Java Tech. Edition, Version 7 Release 1
� Expands on zEC12/zBC12 instruction and facility exp loitation– More TX, instruction scheduler, traps, branch preload– Runtime instrumentation exploitation– zEDC exploitation through java/util/zip– Integration of SMC-R
� Improved general performance/throughput– Up-to 19% improvement to throughput– Up-to 2.4x savings in CPU-time for record parsing batch application
� Improved native data binding - Data Access Accelerat or– Integrated with JZOS native record binding framework
� Improved WLM capabilities
� Improved SAF and cryptography support
� Additional reliability, availability, and serviceab ility (RAS) enhancements
� Enhanced monitoring and diagnostics
http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=AN&subtype=CA&htmlfid=897/ENUS213-498&appname=USN
© 2014 IBM Corporation20
Java-based Store, Inventory and Point-of-Sale Application
� 10% improvement to Java-based Inventory and Point-of-Sale application with Java 7.1 compared to Java 7 SR4
(Controlled measurement environment, results may vary)
Java Store, Inventory and Point-Of-Sale Application zEC12 16-way
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
1.1
1.2
Java 7 SR4 Java 7.1
Nor
mal
ized
Max
imum
Ope
ratio
ns p
er s
econ
d
© 2014 IBM Corporation21
IBM Operational Decision Manager
� 19% improvement to ODM with Java 7.1 compared to Java 7 SR4
(Controlled measurement environment, results may vary)
IBM Operational Decision Management zEC12 16-way
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
1.1
1.2
1.3
1.4
Java 7 SR4 Java 7.1
Thr
ough
put
(Nor
mal
ized
to
Java
7 S
R4)
© 2014 IBM Corporation22
Store your Data - zEnterprise Data Compression (zEDC) in Java 7.1
** IDC: The Digital Universe in 2020: Big Data, Bigger Digital Shadows, and Biggest Growth in the Far East
Up-to 12x improvement in CPU timeUp-to 3x improvement in elapsed timeCompression ratio of ~4x
CPU Time for Software versus zEDC Hardware Compress ion
-
20,000
40,000
60,000
80,000
100,000
120,000
140,000
160,000
F1 F2 F3
Compressed Data File
CP
U T
ime
Mill
isec
onds
Software Default
Software Level 1
zEDC Hardware
Size of Compressed Data - Software versus zEDC Hard ware
-
500
1,000
1,500
2,000
2,500
3,000
3,500
4,000
4,500
F1 F2 F3
Compressed Data File
Dat
a Siz
e in
Bytes Input Buffer
Software Default
Software Level 1
zEDC Hardware
What is it? � zEDC Express is an IO adapter
that does high performance industry standard compression
� Used by z/OS Operating System components, IBM Middleware and ISV products
� Applications can use zEDC
via industry standard APIs (zlib and Java)
� Each zEDC Express sharable
across 15 LPARs, up to 8 devices per CEC.
� Raw throughput up to 1 GB/s per
zEDC Express Hardware Adapter
Every day over 2000 petabytes of data are createdBetween 2005 to 2020, the digital universe will grow by 300x, going from 130 to 40,000 exa-bytes**80% of world's data was created in last two years alone.
(Controlled measurement environment, results may vary)
© 2014 IBM Corporation23
� Transparent exploitation for TCP sockets based applications � Compatible with existing TCP/IP based load balancing solutions� Up-to 40% reduction in end-to-end transaction latency� Slight increase in CPU is due to very small message size in this workload (~100 bytes). Workloads with larger
payloads are expected to show a CPU savings
Move your Data - Shared Memory Communications (SMC-R):
Exploit RDMA over Converged Ethernet (RoCE) with qualities of service support for dynamic failover to redundant hardware
SMC-R vs TCP/IP (OSA)W AS Libe rty< ->DB2 W orkloa d
-40.00%
3.11%
-45.00%
-40.00%
-35.00%
-30.00%
-25.00%
-20.00%
-15.00%
-10.00%
-5.00%
0.00%
5.00%
10.00%
Latency CPU Consumption per tran
Per
cent
Cha
nge
SMC-R vs TCP/IP (OSA) (40 ClientConnections)
OSA RNIC
TCP
IP
Interface
SMC-R
Sockets
Middleware/Application
System z
IP Network
(Ethernet)
RDMA Network
RoCE (CEE)
ETH RNIC
TCP
IP
Interface
SMC-R
Sockets
Middleware/Application
SMC-R enabled platform
TCP connection establishment over IPDynamic negotiation for SMC -R
Data Flows using RDMAover RoCE
OSA RNIC
TCP
IP
Interface
SMC-R
Sockets
Middleware/Application
System z
IP Network
(Ethernet)
RDMA Network
RoCE (CEE)
ETH RNIC
TCP
IP
Interface
SMC-R
Sockets
Middleware/Application
SMC-R enabled platform
TCP connection establishment over IPDynamic negotiation for SMC -R
Data Flows using RDMAover RoCE
(Controlled measurement environment, results may vary)
© 2014 IBM Corporation24
Transform your Data - Data Access Accelerator in Java 7.1
A Java library for bare-bones data conversion and arithmetic
Operates directly on byte arrays
No Java object tree created
Orchestrated with JIT for deep platform opt.
Avoids expensive Java object instantiation
Library is platform and JVM-neutral
Current Approach:byte[] addPacked(array a[], array b[]) {
BigDecimal a_bd = convertPackedToBd(a[]);
BigDecimal b_bd = convertPackedToBd(b[]);
a_bd.add(b_bd);
return (convertBDtoPacked(a_bd));
}
Proposed Solution:
byte[] addPacked(array a[], array b[]) {
DAA.addPacked(a[], b[]);
return (a[]);
}
Marshalling and Un-marshallingTransform primitive type (short, int, long, float, double) � byte array
Support both big/little endian byte arrays
Packed Decimal (PD) OperationsArithmetic: +, -, *, /, % on 2 PD operands
Relation: >,<,>=,<=,==,!= on 2 PD operands
Error checking: checks if PD operand is well-formed
Other: shifting, and moving ops on PD operand
Decimal Data Type ConversionsDecimal � Primitive: Convert Packed Decimal(PD), External
Decimal(ED), Unicode Decimal(UD) �primitive types (int, long)
Decimal � Decimal: Convert between dec. types (PD, ED, UD)
Decimal �Java: Convert dec. types (PD, ED, UD) �BigDecimal, BigInteger
© 2014 IBM Corporation25
DAA – JZOS Medicare Record Benchmark
� 31-bit Java 7.1 with DAA versus Java 7 SR4 CPU Time improved by by 2.4x
� 64-bit Java 7.1 with DAA versus Java 7 SR4 CPU Time improved by by 1.9xhttp://www.ibm.com/developerworks/java/zos/javadoc/jzos/index.html?com/ibm/jzos/sample/fields/MedicareRecord.html
(Controlled measurement environment, results may vary)
JZOS Medicare Record Parsing Benchmark
0
0.2
0.4
0.6
0.8
1
1.2
31-bit 64-bit
CP
U-ti
me
to P
arse
5M
Rec
ords
(N
orm
aliz
ed to
31-
bit J
ava
7 S
R4
w/o
DA
A)
Java 7 SR4
Java 7.1
© 2014 IBM Corporation26
Java8: Language Innovation – Lambdas and Parallelism
New syntax to allow concise code snippets and expre ssion– Useful for sending code to java.lang.concurrent– On the path to enabling more parallelisms
http://www.dzone.com/links/presentation_languagelibraryvm_coevolution_in_jav.html
© 2014 IBM Corporation27
Economies of Scale for Java in the Cloud
Hardware
OS Images
Middleware
Application
Hardware
OS Images
Middleware
Application
Hardware
OS Images
Middleware
Application
OS Images
Middleware
Application
Hardware
OS Image
Middleware
Application
Middleware
Application
Hardware
OS Image
Middleware (e.g. WAS)
Application Application
Share-nothing(maximum isolation)
Shared hardware Shared OS Shared Process
Hardware
OS Image
Middleware (e.g. WAS)
Application
Tenant Tenant
Share-everything(maximum sharing)
Density
-Xshareclasses -Xshareclasses
Tenant API
‘Mission critical’apps
‘free’ apps
1+ GB / tenant 100’s MB / tenant1+ GB / tenant 10’s MB / tenant 10’s KB / tenant
Timelines and deliveries are subject to change.
© 2014 IBM Corporation28
Multitenancy : IBM's approach to 'Virtualized JVMs'
� A standard 'java' invocation creates a dedicated (non-shared) JVM in each process
java1
JVM
java2
JVM
java3
JVM
java1
proxy
javad
JVM
java1
proxy
java1
proxy
� IBM's Multitenant JVM puts a lightweight 'proxy' JVM in each 'java' invocation. The 'proxy' knows how to communicate with the shared JVM daemon called javad.
� 'javad' is launched and shuts down automatically
� No changes required to the application
� 'javad' process is where aggressive sharing of runtime artifacts happens
© 2014 IBM Corporation29
Questions?
29
© 2014 IBM Corporation30
© 2014 IBM Corporation3131
Important references
� z/OS Java web site– http://www.ibm.com/systems/z/os/zos/tools/java/
� IBM SDK Java Technology Edition Version 7 Information Center– http://publib.boulder.ibm.com/infocenter/java7sdk/v7r0/index.jsp
� IBM SDK Java Technology Edition Version 6 Supplement– http://public.dhe.ibm.com/common/ssi/ecm/en/zsl03118usen/ZSL03118USEN.PDF
� JZOS Batch Launcher and Toolkit Installation and User’s Guide (SA38-0696-00) – For JZOS function included in IBM Java SE 7 SDKs for z/OS– http://publibz.boulder.ibm.com/epubs/pdf/ajvc0110.pdf
� JZOS Batch Launcher and Toolkit Installation and User’s Guide (SA23-2245-03)– For JZOS function included in IBM Java SE 6 and SE 5 SDKs for z/OS– http://publibfi.boulder.ibm.com/epubs/pdf/ajvc0103.pdf
Java on zEC12
© 2014 IBM Corporation3232
New and existing supported Java products – z/OS
� IBM 31-bit SDK for z/OS, Java Technology Edition, Version 7 Release 1– Web available on December, 2013 at Java SE 7 level– Product 5655-W43, supported on z/OS V1.12 and above
� IBM 64-bit SDK for z/OS, Java Technology Edition, Version 7 Release 1– Web available on December, 2013 at Java SE 7 level– Product 5655-W44, supported on z/OS V1.12 and above
� IBM 31-bit SDK for z/OS, Java Technology Edition, Version 7.0– Web available on October 4, 2011 at Java SE 7 level– Product 5655-W43, supported on z/OS V1.10 and above
� IBM 64-bit SDK for z/OS, Java Technology Edition, Version 7.0– Web available on October 4, 2011 at Java SE 7 level– Product 5655-W44, supported on z/OS V1.10 and above
� IBM 31-bit SDK for z/OS, Java Technology Edition, Version 6.0.1– Web available on March 15, 2011 at Java SE 6 level– Product 5655-R31, supported on z/OS V1.10 and above
� IBM 64-bit SDK for z/OS, Java Technology Edition, Version 6.0.1– Web available on March 15, 2011 at Java SE 6 level– Product 5655-R32, supported on z/OS V1.10 and above
� IBM 31-bit SDK for z/OS, Java Technology Edition, Version 6.0.0– Web available on December 14, 2007 at Java SE 6 level– Product 5655-R31
� IBM 64-bit SDK for z/OS, Java Technology Edition, Version 6.0.0– Web available on December 14, 2007 at Java SE 6 level– Product 5655-R32
� IBM 31-bit SDK for z/OS, Java 2 Technology Edition, Version 5.0 – Web available on November 30, 2005 – Product 5655-N98
� IBM 64-bit SDK for z/OS, Java 2 Technology Edition, Version 5.0 – Web available on November 30, 2005– Product 5655-N99
� All products are delivered via the z/OS Java website in non-SMP/E format and via ShopIBM in SMP/E format
� All products are independently orderable and serviceable and follow the z/OS RFA rules for Withdrawal from Marketing and End of Service
Java on zEC12
© 2014 IBM Corporation33
Transactional Execution: Concurrent Linked Queue
� ~2x improved scalability of juc.ConcurrentLinkedQue ue
� Unbound Thread-Safe LinkedQueue– First-in-first-out (FIFO)
• Insert elements into tail (en-queue)• Poll elements from head (de-queue)
– No explicit locking required
� Example usage: a multi-threaded work queue– Tasks are inserted into a concurrent linked queue as multiple worker threads
poll work from it concurrently
head
node
node
node
tail
….
last node
En-queue
first node
De-queue
New TX-base implementation
Traditional CAS-base implementation
(Controlled measurement environment, results may vary)
© 2014 IBM Corporation34
START:IA1 BR THERE
HERE:IA10 LRIA11 LRIA12 ARIA13 collect GR1
….IA25 L � Sample
….
THERE:IA100 ….
ST…
IA200 BR HERE…
IA1IA100
Circular
Collection Buffer
IA200IA10
IA13GR1CB head
Event Tracing
Just-in-time Compiler
Profiler
Immediate representation generator
Optimizer
Code generator
Runtime
� Low overhead profiling with hardware support– Instruction samples by time, count or explicit marking
� Sample reports include hard-to-get information :– Event traces, e.g. taken branch trace – “costly” events of interest, e.g. cache miss information– GR value profiling
� Enables better “self-tuning” opportunities
Runtime Instrumentation
EventTrace
InstrumentationcontrolsInstruction
processing Pre-allocatedstorage
1 (setup)
2
3
45
6 (analyze)
CPU
JVM
GC
Bytecodes
Java on zEC12
© 2014 IBM Corporation35
WAS on z/OS – DayTraderAggregate HW, SDK and WAS Improvement: WAS 6.1 (Java 5) on z9 to WAS 8.5 (Java 7) on zEC12
(Controlled measurement environment, results may vary)
6x aggregate hardware and software improvement comp aring WAS 6.1 Java5 on z9 to WAS 8.5 Java7SR4 on zEC 12
© 2014 IBM Corporation36
Liberty feature set as of V8.5.5
36
WAS V8.5.5 Liberty Profile
Application Manager
HTTP TransportFeature Manager