Java With z14 Features Hardware Facilities for Secure, High-Performance Transaction Processing

Java on Z

Skills, cost and portability of applications are key factors that are driving client decisions about where, when and how to invest in application development. With this in mind, there has been a tremendous amount of focus on Java on IBM Z, as the value proposition of the latter has never been better.

In a survey of 95 IBM Z clients conducted in 2016, 85 percent of them now have Java on Z in production. Of these, more than 80 percent described their Java on Z project as successful or very successful. Clients continue to be vocal about the advantages they gained from Java on Z. This isn’t surprising given the significant investment that has gone into making Java a first-class language on the platform. Java has been deeply integrated across the stack, including the addition of new facilities in four generations of IBM Z processors, IBM z Systems Integrated Information Processor, offload engines, z/OS system and the broad portfolio of mission-critical middleware including IBM Db2, CICS and IMS.

The trend for the adoption and integration of Java on Z is consistent. An IDC study, “The Business Value of the Connected Mainframe for Digital Transformation”,  emphasizes modernizing on the mainframe means creating a platform that’s integration-ready within the data center and with the industry, a natural participant in business innovation.

The study places Java at the heart of modernization and innovation of the mainframe. What is it about Java that puts it in such an esteemed position? First, Java continues to be a leading language of choice in the IT industry. Redmonk and other language ranking frameworks still consistently place Java at the top of the list of languages of choice for developers. With two decades of know-how, the Java language, its developers, tools and ecosystem are mature and well seasoned, making the language well positioned to meet the needs of the mission-critical enterprise. Java sets the bar as a standardized, safe and portable environment that enables true fit-for-purpose placement of workload.

Java on Z provides performance at a very competitive price point. With the IBM z14, IBM has taken Java to the next level with new hardware facilities like pause-less garbage collection (GC), high-performance encryption and decimal processing acceleration—giving Java on Z the ability to handle secure and high-performance transaction processing at-scale.

Leading Performance

Years of investment in co-design of the IBM Java VM (JVM) and IBM Z processor, OSes and middleware have made Java on IBM Z what it is today. With the world’s fastest processor, largest caches and high-performance simultaneous multithreading, the processor provides an ideal Java execution environment. With over 200 new instructions co-design and exploited by the IBM Software Development Kit and significant investment in performance and innovation, Java on Z provides industry-leading performance.

For example, workloads like DayTrader—an end-to-end Java Enterprise Edition web application for benchmarking—running on the WebSphere Liberty deliver up to 1.6x better throughput per core on z14 than on x86 alternatives. Similarly, Java on z14 running IBM Operational Decision Manager—a full featured platform for capturing, automating and governing frequent, repeatable business decisions—is up to 1.7x better than on x86 alternatives.

Pause-Less Garbage Collection

Java is one of the premier platforms for deploying online transaction processing workloads with strict response time service-level agreements (SLA) and analytics applications with large heaps. In both scenarios, tuning of the Java heap and GC policies of the JVM present one of the biggest opportunities and challenges in extracting better Java performance. GC is an automated memory management feature of the JVM that kicks in when the Java heap becomes exhausted. During GC phases, application threads are paused to allow GC to coalesce live objects and free up heap memory. Such periods, known as stop-the-world pause times—where application progress is stalled—can have an impact to both application throughput and response time.

IBM z14 introduces specialized hardware that enables the JVM’s GC to relocate objects concurrently with the user application. The JVM is able to mark ranges of the Java heap from which objects are being migrated during a GC cycle. The z14 hardware provides a lightweight mechanism of detecting objects that reference those regions. The combination of JVM exploitation and hardware allows for both GC and application to execute in parallel, resulting in significant reductions in stop-the-world pause times.

Figure 1 shows a Java Store Inventory and Point of Sale application that demonstrates an average pause-time of 300 ms with the default generation concurrent collector GC policy. Using the pause-less GC mode with IBM Java 8 Service Refresh (SR) 5 running on z14, the average GC pause-times have reduced to 30 ms, a 10x improvement. Furthermore, the pause-less GC mode delivers up to 3x better throughput Figure 1 shows a Java Store Inventory and Point of Sale application that demonstrates an average pause-time of 300 ms with the default generation concurrent collector GC policy. Using the pause-less GC mode with IBM Java 8 Service Refresh (SR) 5 running on z14, the average GC pause-times have reduced to 30 ms, a 10x improvement. Furthermore, the pause-less GC mode delivers up to 3x better throughput under specific response-time SLAs, as the shorter GC pause times help ensure more consistent application response-times.

High-Performance Encryption

Today’s business climate demands trusted computing and the utmost security for data and transactions. Pervasive encryption has become the norm, and high performance of encryption and cryptography has become crucial in many applications. IBM Java 8 introduced extensive hardware exploitation of IBM Z Central Processor Assist for Cryptographic Functions (CPACF) instructions to accelerate many aspects of encryption for connections secured via Transport Layer Security (TLS) protocols, including SHA-1/SHA-2 hashing algorithms, elliptic curve cryptography public-key cryptography, Advanced Encryption Standard and Data Encryption Standard ciphers, and more.

IBM z14 further enhances the performance by introducing new CPACF hardware support to accelerate Galois/Counter Mode (GCM) cryptographic mode for block ciphering. GCM offers better secure alternative to the common Cipher Block Chaining (CBC) algorithm, and is being widely adopted, as CBC is being deprecated and removed in the next generation TLS 1.3 specification. With z14 and IBM Java 8 SR5 GCM performance, there is no need to postpone moving from CBC to GCM.

With IBM Java 8 SR5, the IBM Java Cryptography Extension providers will exploit transparently the new z14 GCM hardware; delivering industry-leading GCM performance of up to 2.6x better throughput over alternative platforms for DayTrader running on WebSphere Liberty with TLS enabled secured with AES 128-bit GCM. Figure 2 highlights the same DayTrader application performing up to 3x faster with the more secure AES_GCM cipher on IBM z14, over AES_CBC on prior zEC12 and z13 hardware.

IBM z14 also introduces a True Random Number Generator (TRNG) built-in with the hardware. The IBMJCE providers in IBM Java 8 SR5 exploit this higher quality entropy hardware source to seed the SecureRandom class, to deliver a cryptographically stronger random output sequence. Beyond a high quality of randomness, TRNG supports a higher throughput in generation of random values, which directly improves the performance of sourcing random numbers from SecureRandom class.

Accelerated Decimal Processing

Java is a strategic modernization platform commonly used to replace or augment existing COBOL applications and assets. While business logic can be ported to Java, a lot of data remains in COBOL copybooks, with binary coded decimals (BCD) of the form of packed and zoned decimals being prevalent. Given that BCDs aren’t native types in Java, the Data Access Accelerator (DAA) package com/ibm/dataaccess was introduced in IBM Java 7.1 to ensure optimal data marshaling and operations of BCDs within Java. The IBM JVM, when running on IBM Z, can recognize DAA packed decimal methods and exploit z/Architecture packed decimal instructions intrinsically. By exploiting the same set of instructions as COBOL, this JVM feature allows Java to achieve near-COBOL performance for decimal processing. Using the toolkit for Java on Z JZOS Medicare Record application, IBM has measured up to 2x better performance with DAA library and its hardware acceleration.

In IBM z14, a new set of packed decimal hardware instructions have been introduced to operate with 128-bit-wide vector registers. Prior hardware generations only supported packed decimal operations using memory-to-memory SS-format instructions. The new z14 instructions deliver better performance by avoiding the cache/memory latencies inherent with the older SS-format instructions. With IBM Java 8 SR5, the JVM can detect when an application is running on an IBM z14, and transparently exploit these new z14 instructions without any application recompilation required.

Continuous Investment

Java on Z is enabling the mainframe to participate and drive modern data center innovation. Clients who have embraced Java on Z are capturing skills and lowering costs, while building portable applications that offer true fit-for-purpose placement in the data center.

IBM has invested heavily in Java on Z for over a decade. With the z14, IBM continues this aggressive investment. With new leading edge hardware facilities like pause-less garbage collection, high-performance encryption and decimal processing acceleration, Java on Z has secure and high-performance transaction processing at-scale. This sustained focus on the IBM JVM has given it industry-leading performance and security while continuing to pay dividends for the many clients who have adopted Java on Z.

Joran Siu is a development lead for the IBM Software Development Kit for Node.js for IBM Z.

Clark Goodrich is a senior software engineer in the IBM Systems, IBM Z performance organization working on the Java compiler. He has been with IBM since 1978 and holds six IBM patents. Prior to joining IBM, he did real-time programming at NASA's Goddard Space Flight Center for the Space Shuttle.

Marcel Mitran is a Distinguished Engineer and Chief Technology Officer for IBM LinuxONE. He is based out of the IBM Toronto Lab. Marcel has spent more than 15 years developing hardware and software technology to solve problems of the modern enterprise.

Like what you just read? To receive technical tips and articles directly in your inbox twice per month, sign up for the EXTRA e-newsletter here.

comments powered by Disqus



2017 Solutions Edition

A Comprehensive Online Buyer's Guide to Solutions, Services and Education.

Modernizing Your Enterprise

IBM has business-value-driven solutions to improve application and employee productivity

Leveling the Playing Field

IBM Rational software advances mainframe development

The Agile Enterprise and Beyond

Proper tools can bring flexibility to application development

IBM Systems Magazine Subscribe Box Read Now Link Subscribe Now Link iPad App Google Play Store
Mainframe News Sign Up Today! Past News Letters