SlideShare a Scribd company logo
1 of 53
Download to read offline
©2014 Azul Systems, Inc. 
Enabling Java in Latency Sensitive Environments 
Matt Schuetze, Product Manager, Azul Systems DotCMS Bootcamp, Nashville, October 23, 2014
©2014 Azul Systems, Inc. 
High level agenda Intro, jitter vs. JITTER Java in a low latency application world The (historical) fundamental problems What people have done to try to get around them What if the fundamental problems were eliminated? What 2014 looks like for Low latency Java developers
©2014 Azul Systems, Inc.
©2014 Azul Systems, Inc. 
Is “jitter” a proper word for this? 
99%‘ile is ~60 usec 
Max is ~30,000% higher than “typical”
©2014 Azul Systems, Inc. 
About Azul We make scalable Virtual Machines Have built “whatever it takes to get job done” since 2002 3 generations of custom SMP Multi-core HW (Vega) Now Pure software for commodity x86 (Zing) Known for Low Latency, Consistent execution, and Large data set excellence 
Vega 
C4
©2014 Azul Systems, Inc. 
Java in the low latency world
©2014 Azul Systems, Inc. 
Java in a low latency world Why do people use Java for low latency apps? Are they crazy? No. There are good, easy to articulate reasons Projected lifetime cost Developer productivity Time-to-product, Time-to-market, ... Leverage, ecosystem, ability to hire
©2014 Azul Systems, Inc. 
E.g. Customer answer to: “Why do you use Java in Algo Trading?” Strategies have a shelf life We have to keep developing and deploying new ones Only one out of N is actually productive Profitability therefore depends on ability to successfully deploy new strategies, and on the cost of doing so Our developers seem to be able to produce 2x-3x as much when using a Java environment as they would with C++ ...
©2014 Azul Systems, Inc. 
So what is the problem? Is Java Slow? No A good programmer will get roughly the same speed from both Java and C++ A bad programmer won’t get you fast code on either The 50%‘ile and 90%‘ile are typically excellent... It’s those pesky occasional stutters and stammers and stalls that are the problem... Ever hear of Garbage Collection?
©2014 Azul Systems, Inc. 
Java’s Achilles heel
©2014 Azul Systems, Inc. 
Stop-The-World Garbage Collection: How bad is it? Let’s ignore the bad multi-second pauses for now... Low latency applications regularly experience “small”, “minor” GC events that range in the 10s of msec Frequency directly related to allocation rate In turn, directly related to throughput So we have great 50%, 90%. Maybe even 99% But 99.9%, 99.99%, Max, all “suck” So bad that it affects risk, profitability, service expectations, etc.
©2014 Azul Systems, Inc. 
STW-GC effects in a low latency application 
99%‘ile is ~60 usec 
Max is ~30,000% higher than “typical”
©2014 Azul Systems, Inc. 
One way to deal with Stop-The-World GC
©2014 Azul Systems, Inc. 
A way to deal with Stop-The-World GC
©2014 Azul Systems, Inc. 
Another way to cope: “Creative Language” “Guarantee a worst case of 5 msec, 99% of the time” “Mostly” Concurrent, “Mostly” Incremental Translation: “Will at times exhibit long monolithic stop-the-world pauses” “Fairly Consistent” Translation: “Will sometimes show results well outside this range” “Typical pauses in the tens of milliseconds” Translation: “Some pauses are much longer than tens of milliseconds”
©2014 Azul Systems, Inc. 
What do actual low latency developers do about it? They use “Java” instead of Java They write “in the Java syntax” They avoid allocation as much as possible E.g. They build their own object pools for everything They write all the code they use (no 3rd party libs) They train developers for their local discipline In short: They revert to many of the practices that hurt productivity. They lose out on much of Java.
©2014 Azul Systems, Inc. 
What do low latency (Java) developers get for all their effort? They still see pauses (usually ranging to tens of msec) But they get fewer (as in less frequent) pauses And they see fewer people able to do the job And they have to write EVERYTHING themselves And they get to debug malloc/free patterns again And they can only use memory in certain ways ... Some call it “fun”... Others “duct tape engineering”...
©2014 Azul Systems, Inc. 
There is a fundamental problem: 
Stop-The-World GC mechanisms 
are contradictory to the fundamental requirements of 
low latency & low jitter apps
©2014 Azul Systems, Inc. 
Sustainable Throughput: 
The throughput achieved while safely maintaining service levels 
Unsustainable 
Throughout
©2014 Azul Systems, Inc. 
It’s an industry-wide problem
©2014 Azul Systems, Inc. 
Didn’t G1GC fix this in Java7u4? 
“The one big challenge left for Java on performance is containing pause times. Latency jitter is the only reason to ever use other languages inside Twitter.” 
--Adam Messinger, 
CTO of Twitter 
Citation: Oracle Java 8 global launch video, 
March 25, 2014
©2014 Azul Systems, Inc. 
It was an industry-wide problem 
It’s 2014... Now we have Zing.
©2014 Azul Systems, Inc. 
The common GC behavior across ALL currently shipping (non-Zing) JVMs ALL use a Monolithic Stop-the-world NewGen “small” periodic pauses (small as in 10s of msec) pauses more frequent with higher throughput or allocation rates Development focus for ALL is on Oldgen collectors Focus is on trying to address the many-second pause problem Usually by sweeping it farther and farther the rug “Mostly X” (e.g. “mostly concurrent”) hides the fact that they refer only to the OldGen part of the collector E.g. CMS, G1, Balanced.... all are OldGen-only efforts ALL use a Fallback to Full Stop-the-world Collection Used to recover when other mechanisms (inevitably) fail Also hidden under the term “Mostly”...
©2014 Azul Systems, Inc. 
At Azul, STW-GC was addressed head-on We decided to focus on the right core problems Scale & productivity being limited by responsiveness Even “short” GC pauses are considered a problem Responsiveness must be unlinked from key metrics: Transaction Rate, Concurrent users, Data set size, etc. Heap size, Live Set size, Allocation rate, Mutation rate Responsiveness must be continually sustainable Can’t ignore “rare but periodic” events Eliminate ALL Stop-The-World Fallbacks Any STW fallback is a real-world failure
©2014 Azul Systems, Inc. 
The Zing “C4” Collector Continuously Concurrent Compacting Collector Concurrent, compacting old generation Concurrent, compacting new generation No stop-the-world fallback Always compacts, and always does so concurrently
©2014 Azul Systems, Inc. 
Benefits
©2014 Azul Systems, Inc. 
An example of “First day’s run” behavior E-Commerce application
©2014 Azul Systems, Inc. 
An example of behavior after 4 days of system tuning Low latency application
©2014 Azul Systems, Inc. 
This is not “just Theory” 
jHiccup: A tool that measures and reports (as your application is running) if your JVM is running all the time
©2014 Azul Systems, Inc. 
Discontinuities in Java platform execution - Easy To Measure 
A telco App with a bit of a “problem” 
We call these “hiccups”
©2014 Azul Systems, Inc. 
Oracle HotSpot (pure newgen) 
Zing 
Low latency trading application
©2014 Azul Systems, Inc. 
Oracle HotSpot (pure newgen) 
Zing 
Low latency trading application
©2014 Azul Systems, Inc. 
Low latency - Drawn to scale 
Oracle HotSpot (pure newgen) 
Zing
©2014 Azul Systems, Inc. 
It’s not just for Low Latency 
Just as easy to demonstrate 
for human-response-time 
apps
©2014 Azul Systems, Inc. 
Portal Application, slow Ehcache “churn”
©2014 Azul Systems, Inc. 
Portal Application, slow Ehcache “churn”
©2014 Azul Systems, Inc. 
Portal Application - Drawn to scale
©2014 Azul Systems, Inc. 
A Very Local Case Study 
DotCMS with Zing
©2014 Azul Systems, Inc. 
Human-Time Real World Latency Case DotCMS used in enterprise scale web system. Footprint growing year over year, so now at 1000+ websites across 3 DotCMS servers, each with 40GB heaps Observed 170 second (ouch!) GC pauses during business hours using traditional JVM. Server nodes fall out of cluster, lose sync. Staff spent man-weeks tuning traditional JVM flags for GC, mostly trial and error, making mild headway in reducing spikes.
©2014 Azul Systems, Inc. 
Real World Latency Results DotCMS met Azul at JavaOne Discussion led to Zing as viable alternative DotCMS staff ran in house compatibility tests with positive results POC on customer live system showed excellent promise Production System now stays well under 2 second hard SLA limit Cluster nodes no longer fall out for GC, so better system stability overall
©2014 Azul Systems, Inc. 
In DotCMS CTO’s words:
©2014 Azul Systems, Inc. 
Remind me how GC tuning sucks
©2014 Azul Systems, Inc. 
Java GC tuning is “hard”… 
Examples of actual command line GC tuning parameters: 
Java -Xmx12g -XX:MaxPermSize=64M -XX:PermSize=32M -XX:MaxNewSize=2g 
-XX:NewSize=1g -XX:SurvivorRatio=128 -XX:+UseParNewGC 
-XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=0 
-XX:CMSInitiatingOccupancyFraction=60 -XX:+CMSParallelRemarkEnabled 
-XX:+UseCMSInitiatingOccupancyOnly -XX:ParallelGCThreads=12 
-XX:LargePageSizeInBytes=256m … 
Java –Xms8g –Xmx8g –Xmn2g -XX:PermSize=64M -XX:MaxPermSize=256M 
-XX:-OmitStackTraceInFastThrow -XX:SurvivorRatio=2 -XX:- UseAdaptiveSizePolicy 
-XX:+UseConcMarkSweepGC -XX:+CMSConcurrentMTEnabled 
-XX:+CMSParallelRemarkEnabled -XX:+CMSParallelSurvivorRemarkEnabled 
-XX:CMSMaxAbortablePrecleanTime=10000 -XX:+UseCMSInitiatingOccupancyOnly 
-XX:CMSInitiatingOccupancyFraction=63 -XX:+UseParNewGC –Xnoclassgc …
©2014 Azul Systems, Inc. 
A few GC tuning flags 
Source: Word Cloud created by Frank Pavageau in his Devoxx FR 2012 presentation titled “Death by Pauses”
©2014 Azul Systems, Inc. 
The complete guide to Zing GC tuning 
java -Xmx40g
©2014 Azul Systems, Inc. 
Any other problems beyond GC?
©2014 Azul Systems, Inc. 
JVMs make many tradeoffs often trading speed vs. outliers Some speed techniques come at extreme outlier costs E.g. (“regular”) biased locking E.g. counted loops optimizations Deoptimization Lock deflation Weak References, Soft References, Finalizers Time To Safe Point (TTSP)
©2014 Azul Systems, Inc. 
Time To Safepoint (TTSP) Your new #1 enemy (Once GC itself was taken care of) Many things in a JVM (still) use a global safepoint All threads brought to a halt, at a “safe to analyze” point in code, and then released after work is done. E.g. GC phase shifts, Deoptimization, Class unloading, Thread Dumps, Lock Deflation, etc. etc. A single thread with a long time-to-safepoint path can cause an effective pause for all other threads. Consider this a variation on Amdahl’s law. Many code paths in the JVM are long...
©2014 Azul Systems, Inc. 
Time To Safepoint (TTSP) the most common examples Array copies and object clone() Counted loops Many other variants in the runtime... Measure, Measure, Measure... Zing has a built-in TTSP profiler At Azul, the CTO walks around with a 0.5msec stick...
©2014 Azul Systems, Inc. 
OS related stuff (once GC and TTSP are taken care of) OS related hiccups tend to dominate once GC and TTSP are removed as issues. Take scheduling pressure seriously (Duh?) Hyper-threading (good? bad?) Swapping (Duh!) Power management Transparent Huge Pages (THP). ...
©2014 Azul Systems, Inc. 
Takeaway: In 2014, “Real” Java is finally viable for low latency applications GC is no longer a dominant issue, even for outliers 2-3msec worst case case with “easy” tuning < 1 msec worst case is very doable No need to code in special ways any more You can finally use “real” Java for everything You can finally 3rd party libraries without worries You can finally use as much memory as you want You can finally use regular (good) programmers
©2014 Azul Systems, Inc. 
One-liner Takeaway: 
Zing: A cure for the Java hiccups
©2014 Azul Systems, Inc. 
Q&A and In Closing… Go get some Zing today! At very least download JHiccup. Meet us at the Azul table. Review Azul folio in your bag. Thanks for a great Bootcamp! 
www.azul.com

More Related Content

What's hot

Azul Zulu on Azure Overview -- OpenTech CEE Workshop, Warsaw, Poland
Azul Zulu on Azure Overview -- OpenTech CEE Workshop, Warsaw, PolandAzul Zulu on Azure Overview -- OpenTech CEE Workshop, Warsaw, Poland
Azul Zulu on Azure Overview -- OpenTech CEE Workshop, Warsaw, PolandAzul Systems Inc.
 
Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2Abhishek Gupta
 
GlassFish BOF
GlassFish BOFGlassFish BOF
GlassFish BOFglassfish
 
Rest Services With Play Framework, Adding Security with JWT
Rest Services With Play Framework, Adding Security with JWTRest Services With Play Framework, Adding Security with JWT
Rest Services With Play Framework, Adding Security with JWTMercedes Wyss
 
Driving DevOps for Oracle with the orawls Puppet Modules
Driving DevOps for Oracle with the orawls Puppet ModulesDriving DevOps for Oracle with the orawls Puppet Modules
Driving DevOps for Oracle with the orawls Puppet ModulesSimon Haslam
 
Java and windows azure cloud service
Java and windows azure cloud serviceJava and windows azure cloud service
Java and windows azure cloud serviceJeffray Huang
 
Bare Metal Provisioning for Big Data - OpenStack最新情報セミナー(2016年12月)
Bare Metal Provisioning for Big Data - OpenStack最新情報セミナー(2016年12月)Bare Metal Provisioning for Big Data - OpenStack最新情報セミナー(2016年12月)
Bare Metal Provisioning for Big Data - OpenStack最新情報セミナー(2016年12月)VirtualTech Japan Inc.
 
GlassFish Roadmap
GlassFish RoadmapGlassFish Roadmap
GlassFish Roadmapglassfish
 
Building Java Desktop Apps with JavaFX 8 and Java EE 7
Building Java Desktop Apps with JavaFX 8 and Java EE 7Building Java Desktop Apps with JavaFX 8 and Java EE 7
Building Java Desktop Apps with JavaFX 8 and Java EE 7Bruno Borges
 
Multi Core Playground
Multi Core PlaygroundMulti Core Playground
Multi Core PlaygroundESUG
 

What's hot (13)

Azul Zulu on Azure Overview -- OpenTech CEE Workshop, Warsaw, Poland
Azul Zulu on Azure Overview -- OpenTech CEE Workshop, Warsaw, PolandAzul Zulu on Azure Overview -- OpenTech CEE Workshop, Warsaw, Poland
Azul Zulu on Azure Overview -- OpenTech CEE Workshop, Warsaw, Poland
 
Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2
 
GlassFish BOF
GlassFish BOFGlassFish BOF
GlassFish BOF
 
Rest Services With Play Framework, Adding Security with JWT
Rest Services With Play Framework, Adding Security with JWTRest Services With Play Framework, Adding Security with JWT
Rest Services With Play Framework, Adding Security with JWT
 
Driving DevOps for Oracle with the orawls Puppet Modules
Driving DevOps for Oracle with the orawls Puppet ModulesDriving DevOps for Oracle with the orawls Puppet Modules
Driving DevOps for Oracle with the orawls Puppet Modules
 
Ts 2992
Ts 2992Ts 2992
Ts 2992
 
Java and windows azure cloud service
Java and windows azure cloud serviceJava and windows azure cloud service
Java and windows azure cloud service
 
Bare Metal Provisioning for Big Data - OpenStack最新情報セミナー(2016年12月)
Bare Metal Provisioning for Big Data - OpenStack最新情報セミナー(2016年12月)Bare Metal Provisioning for Big Data - OpenStack最新情報セミナー(2016年12月)
Bare Metal Provisioning for Big Data - OpenStack最新情報セミナー(2016年12月)
 
GlassFish Roadmap
GlassFish RoadmapGlassFish Roadmap
GlassFish Roadmap
 
Building Java Desktop Apps with JavaFX 8 and Java EE 7
Building Java Desktop Apps with JavaFX 8 and Java EE 7Building Java Desktop Apps with JavaFX 8 and Java EE 7
Building Java Desktop Apps with JavaFX 8 and Java EE 7
 
GlassFish and JavaEE, Today and Future
GlassFish and JavaEE, Today and FutureGlassFish and JavaEE, Today and Future
GlassFish and JavaEE, Today and Future
 
Multi Core Playground
Multi Core PlaygroundMulti Core Playground
Multi Core Playground
 
Azure from scratch part 4
Azure from scratch part 4Azure from scratch part 4
Azure from scratch part 4
 

Viewers also liked

Start Fast and Stay Fast - Priming Java for Market Open with ReadyNow!
Start Fast and Stay Fast - Priming Java for Market Open with ReadyNow!Start Fast and Stay Fast - Priming Java for Market Open with ReadyNow!
Start Fast and Stay Fast - Priming Java for Market Open with ReadyNow!Azul Systems Inc.
 
Priming Java for Speed at Market Open
Priming Java for Speed at Market OpenPriming Java for Speed at Market Open
Priming Java for Speed at Market OpenAzul Systems Inc.
 
ObjectLayout: Closing the (last?) inherent C vs. Java speed gap
ObjectLayout: Closing the (last?) inherent C vs. Java speed gapObjectLayout: Closing the (last?) inherent C vs. Java speed gap
ObjectLayout: Closing the (last?) inherent C vs. Java speed gapAzul Systems Inc.
 
There is a Cure - Diagnosing and Overcoming Common Problems in dotCMS Server ...
There is a Cure - Diagnosing and Overcoming Common Problems in dotCMS Server ...There is a Cure - Diagnosing and Overcoming Common Problems in dotCMS Server ...
There is a Cure - Diagnosing and Overcoming Common Problems in dotCMS Server ...Jason Smith
 
dotCMS - Move Forward, Build Faster, Get Farther
dotCMS - Move Forward, Build Faster, Get FartherdotCMS - Move Forward, Build Faster, Get Farther
dotCMS - Move Forward, Build Faster, Get FartherJason Smith
 
Experiences with Debugging Data Races
Experiences with Debugging Data RacesExperiences with Debugging Data Races
Experiences with Debugging Data RacesAzul Systems Inc.
 
How NOT to Write a Microbenchmark
How NOT to Write a MicrobenchmarkHow NOT to Write a Microbenchmark
How NOT to Write a MicrobenchmarkAzul Systems Inc.
 
Speculative Locking: Breaking the Scale Barrier (JAOO 2005)
Speculative Locking: Breaking the Scale Barrier (JAOO 2005)Speculative Locking: Breaking the Scale Barrier (JAOO 2005)
Speculative Locking: Breaking the Scale Barrier (JAOO 2005)Azul Systems Inc.
 
Towards a Scalable Non-Blocking Coding Style
Towards a Scalable Non-Blocking Coding StyleTowards a Scalable Non-Blocking Coding Style
Towards a Scalable Non-Blocking Coding StyleAzul Systems Inc.
 
Webinar: Zing Vision: Answering your toughest production Java performance que...
Webinar: Zing Vision: Answering your toughest production Java performance que...Webinar: Zing Vision: Answering your toughest production Java performance que...
Webinar: Zing Vision: Answering your toughest production Java performance que...Azul Systems Inc.
 
Introducing Kaspersky Security for Virtualization - Light Agent
Introducing Kaspersky Security for Virtualization - Light AgentIntroducing Kaspersky Security for Virtualization - Light Agent
Introducing Kaspersky Security for Virtualization - Light AgentKaspersky
 
The Java Evolution Mismatch - Why You Need a Better JVM
The Java Evolution Mismatch - Why You Need a Better JVMThe Java Evolution Mismatch - Why You Need a Better JVM
The Java Evolution Mismatch - Why You Need a Better JVMAzul Systems Inc.
 
Lock-Free, Wait-Free Hash Table
Lock-Free, Wait-Free Hash TableLock-Free, Wait-Free Hash Table
Lock-Free, Wait-Free Hash TableAzul Systems Inc.
 
SYN 103: Learn What’s New with XenServer
SYN 103: Learn What’s New with XenServerSYN 103: Learn What’s New with XenServer
SYN 103: Learn What’s New with XenServerCitrix
 
20121108 vmug london event nimble sorage for vdi
20121108 vmug london event nimble sorage for vdi20121108 vmug london event nimble sorage for vdi
20121108 vmug london event nimble sorage for vdisubtitle
 

Viewers also liked (18)

Start Fast and Stay Fast - Priming Java for Market Open with ReadyNow!
Start Fast and Stay Fast - Priming Java for Market Open with ReadyNow!Start Fast and Stay Fast - Priming Java for Market Open with ReadyNow!
Start Fast and Stay Fast - Priming Java for Market Open with ReadyNow!
 
Priming Java for Speed at Market Open
Priming Java for Speed at Market OpenPriming Java for Speed at Market Open
Priming Java for Speed at Market Open
 
ObjectLayout: Closing the (last?) inherent C vs. Java speed gap
ObjectLayout: Closing the (last?) inherent C vs. Java speed gapObjectLayout: Closing the (last?) inherent C vs. Java speed gap
ObjectLayout: Closing the (last?) inherent C vs. Java speed gap
 
There is a Cure - Diagnosing and Overcoming Common Problems in dotCMS Server ...
There is a Cure - Diagnosing and Overcoming Common Problems in dotCMS Server ...There is a Cure - Diagnosing and Overcoming Common Problems in dotCMS Server ...
There is a Cure - Diagnosing and Overcoming Common Problems in dotCMS Server ...
 
dotCMS - Move Forward, Build Faster, Get Farther
dotCMS - Move Forward, Build Faster, Get FartherdotCMS - Move Forward, Build Faster, Get Farther
dotCMS - Move Forward, Build Faster, Get Farther
 
Experiences with Debugging Data Races
Experiences with Debugging Data RacesExperiences with Debugging Data Races
Experiences with Debugging Data Races
 
How NOT to Write a Microbenchmark
How NOT to Write a MicrobenchmarkHow NOT to Write a Microbenchmark
How NOT to Write a Microbenchmark
 
Speculative Locking: Breaking the Scale Barrier (JAOO 2005)
Speculative Locking: Breaking the Scale Barrier (JAOO 2005)Speculative Locking: Breaking the Scale Barrier (JAOO 2005)
Speculative Locking: Breaking the Scale Barrier (JAOO 2005)
 
Towards a Scalable Non-Blocking Coding Style
Towards a Scalable Non-Blocking Coding StyleTowards a Scalable Non-Blocking Coding Style
Towards a Scalable Non-Blocking Coding Style
 
Webinar: Zing Vision: Answering your toughest production Java performance que...
Webinar: Zing Vision: Answering your toughest production Java performance que...Webinar: Zing Vision: Answering your toughest production Java performance que...
Webinar: Zing Vision: Answering your toughest production Java performance que...
 
Introducing Kaspersky Security for Virtualization - Light Agent
Introducing Kaspersky Security for Virtualization - Light AgentIntroducing Kaspersky Security for Virtualization - Light Agent
Introducing Kaspersky Security for Virtualization - Light Agent
 
The Java Evolution Mismatch - Why You Need a Better JVM
The Java Evolution Mismatch - Why You Need a Better JVMThe Java Evolution Mismatch - Why You Need a Better JVM
The Java Evolution Mismatch - Why You Need a Better JVM
 
Lock-Free, Wait-Free Hash Table
Lock-Free, Wait-Free Hash TableLock-Free, Wait-Free Hash Table
Lock-Free, Wait-Free Hash Table
 
What's Inside a JVM?
What's Inside a JVM?What's Inside a JVM?
What's Inside a JVM?
 
SYN 103: Learn What’s New with XenServer
SYN 103: Learn What’s New with XenServerSYN 103: Learn What’s New with XenServer
SYN 103: Learn What’s New with XenServer
 
Java vs. C/C++
Java vs. C/C++Java vs. C/C++
Java vs. C/C++
 
C++vs java
C++vs javaC++vs java
C++vs java
 
20121108 vmug london event nimble sorage for vdi
20121108 vmug london event nimble sorage for vdi20121108 vmug london event nimble sorage for vdi
20121108 vmug london event nimble sorage for vdi
 

Similar to Enabling Java in Latency Sensitive Environments with Zing

Enabling Java in Latency Sensitive Applications by Gil Tene, CTO, Azul Systems
Enabling Java in Latency Sensitive Applications by Gil Tene, CTO, Azul SystemsEnabling Java in Latency Sensitive Applications by Gil Tene, CTO, Azul Systems
Enabling Java in Latency Sensitive Applications by Gil Tene, CTO, Azul SystemszuluJDK
 
Enabling Java in Latency-Sensitive Applications
Enabling Java in Latency-Sensitive ApplicationsEnabling Java in Latency-Sensitive Applications
Enabling Java in Latency-Sensitive ApplicationsAzul Systems Inc.
 
Enabling Java in Latency Sensitive Environments
Enabling Java in Latency Sensitive EnvironmentsEnabling Java in Latency Sensitive Environments
Enabling Java in Latency Sensitive EnvironmentsC4Media
 
Enabling Java in Latency Sensitive Environments - Dallas JUG April 2015
Enabling Java in Latency Sensitive Environments - Dallas JUG April 2015Enabling Java in Latency Sensitive Environments - Dallas JUG April 2015
Enabling Java in Latency Sensitive Environments - Dallas JUG April 2015Azul Systems, Inc.
 
Azul yandexjune010
Azul yandexjune010Azul yandexjune010
Azul yandexjune010yaevents
 
Enabling Java in Latency-Sensitive Environments - Austin JUG April 2015
Enabling Java in Latency-Sensitive Environments - Austin JUG April 2015Enabling Java in Latency-Sensitive Environments - Austin JUG April 2015
Enabling Java in Latency-Sensitive Environments - Austin JUG April 2015Azul Systems, Inc.
 
DC JUG: Understanding Java Garbage Collection
DC JUG: Understanding Java Garbage CollectionDC JUG: Understanding Java Garbage Collection
DC JUG: Understanding Java Garbage CollectionAzul Systems, Inc.
 
Virtualization Techniques & Cloud Compting
Virtualization Techniques & Cloud ComptingVirtualization Techniques & Cloud Compting
Virtualization Techniques & Cloud ComptingAhmed Mekkawy
 
D. Andreadis, Red Hat: Concepts and technical overview of Quarkus
D. Andreadis, Red Hat: Concepts and technical overview of QuarkusD. Andreadis, Red Hat: Concepts and technical overview of Quarkus
D. Andreadis, Red Hat: Concepts and technical overview of QuarkusUni Systems S.M.S.A.
 
The Java Evolution Mismatch by Gil Tene, CTO at Azul Systems
The Java Evolution Mismatch by Gil Tene, CTO at Azul SystemsThe Java Evolution Mismatch by Gil Tene, CTO at Azul Systems
The Java Evolution Mismatch by Gil Tene, CTO at Azul SystemszuluJDK
 
Availability in a cloud native world v1.6 (Feb 2019)
Availability in a cloud native world v1.6 (Feb 2019)Availability in a cloud native world v1.6 (Feb 2019)
Availability in a cloud native world v1.6 (Feb 2019)Haytham Elkhoja
 
JVM Support for Multitenant Applications - Steve Poole (IBM)
JVM Support for Multitenant Applications - Steve Poole (IBM)JVM Support for Multitenant Applications - Steve Poole (IBM)
JVM Support for Multitenant Applications - Steve Poole (IBM)jaxLondonConference
 
AWS Summit Sydney 2014 | The Path to Business Agility for Vodafone: How Amazo...
AWS Summit Sydney 2014 | The Path to Business Agility for Vodafone: How Amazo...AWS Summit Sydney 2014 | The Path to Business Agility for Vodafone: How Amazo...
AWS Summit Sydney 2014 | The Path to Business Agility for Vodafone: How Amazo...Amazon Web Services
 
(java2days) Is the Future of Java Cloudy?
(java2days) Is the Future of Java Cloudy?(java2days) Is the Future of Java Cloudy?
(java2days) Is the Future of Java Cloudy?Steve Poole
 
Understanding Zulu Garbage Collection by Matt Schuetze, Director of Product M...
Understanding Zulu Garbage Collection by Matt Schuetze, Director of Product M...Understanding Zulu Garbage Collection by Matt Schuetze, Director of Product M...
Understanding Zulu Garbage Collection by Matt Schuetze, Director of Product M...zuluJDK
 
Understanding Java Garbage Collection
Understanding Java Garbage CollectionUnderstanding Java Garbage Collection
Understanding Java Garbage CollectionAzul Systems Inc.
 
Javaland 2017: "You´ll do microservices now". Now what?
Javaland 2017: "You´ll do microservices now". Now what?Javaland 2017: "You´ll do microservices now". Now what?
Javaland 2017: "You´ll do microservices now". Now what?André Goliath
 
Dev Environments: The Next Generation
Dev Environments: The Next GenerationDev Environments: The Next Generation
Dev Environments: The Next GenerationTravis Thieman
 
Automated Scaling of Microservice Stacks for JavaEE Applications
Automated Scaling of Microservice Stacks for JavaEE ApplicationsAutomated Scaling of Microservice Stacks for JavaEE Applications
Automated Scaling of Microservice Stacks for JavaEE ApplicationsJelastic Multi-Cloud PaaS
 
Understanding Application Hiccups - and What You Can Do About Them
Understanding Application Hiccups - and What You Can Do About ThemUnderstanding Application Hiccups - and What You Can Do About Them
Understanding Application Hiccups - and What You Can Do About ThemAzul Systems Inc.
 

Similar to Enabling Java in Latency Sensitive Environments with Zing (20)

Enabling Java in Latency Sensitive Applications by Gil Tene, CTO, Azul Systems
Enabling Java in Latency Sensitive Applications by Gil Tene, CTO, Azul SystemsEnabling Java in Latency Sensitive Applications by Gil Tene, CTO, Azul Systems
Enabling Java in Latency Sensitive Applications by Gil Tene, CTO, Azul Systems
 
Enabling Java in Latency-Sensitive Applications
Enabling Java in Latency-Sensitive ApplicationsEnabling Java in Latency-Sensitive Applications
Enabling Java in Latency-Sensitive Applications
 
Enabling Java in Latency Sensitive Environments
Enabling Java in Latency Sensitive EnvironmentsEnabling Java in Latency Sensitive Environments
Enabling Java in Latency Sensitive Environments
 
Enabling Java in Latency Sensitive Environments - Dallas JUG April 2015
Enabling Java in Latency Sensitive Environments - Dallas JUG April 2015Enabling Java in Latency Sensitive Environments - Dallas JUG April 2015
Enabling Java in Latency Sensitive Environments - Dallas JUG April 2015
 
Azul yandexjune010
Azul yandexjune010Azul yandexjune010
Azul yandexjune010
 
Enabling Java in Latency-Sensitive Environments - Austin JUG April 2015
Enabling Java in Latency-Sensitive Environments - Austin JUG April 2015Enabling Java in Latency-Sensitive Environments - Austin JUG April 2015
Enabling Java in Latency-Sensitive Environments - Austin JUG April 2015
 
DC JUG: Understanding Java Garbage Collection
DC JUG: Understanding Java Garbage CollectionDC JUG: Understanding Java Garbage Collection
DC JUG: Understanding Java Garbage Collection
 
Virtualization Techniques & Cloud Compting
Virtualization Techniques & Cloud ComptingVirtualization Techniques & Cloud Compting
Virtualization Techniques & Cloud Compting
 
D. Andreadis, Red Hat: Concepts and technical overview of Quarkus
D. Andreadis, Red Hat: Concepts and technical overview of QuarkusD. Andreadis, Red Hat: Concepts and technical overview of Quarkus
D. Andreadis, Red Hat: Concepts and technical overview of Quarkus
 
The Java Evolution Mismatch by Gil Tene, CTO at Azul Systems
The Java Evolution Mismatch by Gil Tene, CTO at Azul SystemsThe Java Evolution Mismatch by Gil Tene, CTO at Azul Systems
The Java Evolution Mismatch by Gil Tene, CTO at Azul Systems
 
Availability in a cloud native world v1.6 (Feb 2019)
Availability in a cloud native world v1.6 (Feb 2019)Availability in a cloud native world v1.6 (Feb 2019)
Availability in a cloud native world v1.6 (Feb 2019)
 
JVM Support for Multitenant Applications - Steve Poole (IBM)
JVM Support for Multitenant Applications - Steve Poole (IBM)JVM Support for Multitenant Applications - Steve Poole (IBM)
JVM Support for Multitenant Applications - Steve Poole (IBM)
 
AWS Summit Sydney 2014 | The Path to Business Agility for Vodafone: How Amazo...
AWS Summit Sydney 2014 | The Path to Business Agility for Vodafone: How Amazo...AWS Summit Sydney 2014 | The Path to Business Agility for Vodafone: How Amazo...
AWS Summit Sydney 2014 | The Path to Business Agility for Vodafone: How Amazo...
 
(java2days) Is the Future of Java Cloudy?
(java2days) Is the Future of Java Cloudy?(java2days) Is the Future of Java Cloudy?
(java2days) Is the Future of Java Cloudy?
 
Understanding Zulu Garbage Collection by Matt Schuetze, Director of Product M...
Understanding Zulu Garbage Collection by Matt Schuetze, Director of Product M...Understanding Zulu Garbage Collection by Matt Schuetze, Director of Product M...
Understanding Zulu Garbage Collection by Matt Schuetze, Director of Product M...
 
Understanding Java Garbage Collection
Understanding Java Garbage CollectionUnderstanding Java Garbage Collection
Understanding Java Garbage Collection
 
Javaland 2017: "You´ll do microservices now". Now what?
Javaland 2017: "You´ll do microservices now". Now what?Javaland 2017: "You´ll do microservices now". Now what?
Javaland 2017: "You´ll do microservices now". Now what?
 
Dev Environments: The Next Generation
Dev Environments: The Next GenerationDev Environments: The Next Generation
Dev Environments: The Next Generation
 
Automated Scaling of Microservice Stacks for JavaEE Applications
Automated Scaling of Microservice Stacks for JavaEE ApplicationsAutomated Scaling of Microservice Stacks for JavaEE Applications
Automated Scaling of Microservice Stacks for JavaEE Applications
 
Understanding Application Hiccups - and What You Can Do About Them
Understanding Application Hiccups - and What You Can Do About ThemUnderstanding Application Hiccups - and What You Can Do About Them
Understanding Application Hiccups - and What You Can Do About Them
 

More from Azul Systems Inc.

Advancements ingc andc4overview_linkedin_oct2017
Advancements ingc andc4overview_linkedin_oct2017Advancements ingc andc4overview_linkedin_oct2017
Advancements ingc andc4overview_linkedin_oct2017Azul Systems Inc.
 
Understanding GC, JavaOne 2017
Understanding GC, JavaOne 2017Understanding GC, JavaOne 2017
Understanding GC, JavaOne 2017Azul Systems Inc.
 
Azul Systems open source guide
Azul Systems open source guideAzul Systems open source guide
Azul Systems open source guideAzul Systems Inc.
 
Intelligent Trading Summit NY 2014: Understanding Latency: Key Lessons and Tools
Intelligent Trading Summit NY 2014: Understanding Latency: Key Lessons and ToolsIntelligent Trading Summit NY 2014: Understanding Latency: Key Lessons and Tools
Intelligent Trading Summit NY 2014: Understanding Latency: Key Lessons and ToolsAzul Systems Inc.
 
The evolution of OpenJDK: From Java's beginnings to 2014
The evolution of OpenJDK: From Java's beginnings to 2014The evolution of OpenJDK: From Java's beginnings to 2014
The evolution of OpenJDK: From Java's beginnings to 2014Azul Systems Inc.
 
Push Technology's latest data distribution benchmark with Solarflare and Zing
Push Technology's latest data distribution benchmark with Solarflare and ZingPush Technology's latest data distribution benchmark with Solarflare and Zing
Push Technology's latest data distribution benchmark with Solarflare and ZingAzul Systems Inc.
 
The Art of Java Benchmarking
The Art of Java BenchmarkingThe Art of Java Benchmarking
The Art of Java BenchmarkingAzul Systems Inc.
 
JVM Memory Management Details
JVM Memory Management DetailsJVM Memory Management Details
JVM Memory Management DetailsAzul Systems Inc.
 
JVM Mechanics: A Peek Under the Hood
JVM Mechanics: A Peek Under the HoodJVM Mechanics: A Peek Under the Hood
JVM Mechanics: A Peek Under the HoodAzul Systems Inc.
 
Enterprise Search Summit - Speeding Up Search
Enterprise Search Summit - Speeding Up SearchEnterprise Search Summit - Speeding Up Search
Enterprise Search Summit - Speeding Up SearchAzul Systems Inc.
 
Understanding Java Garbage Collection - And What You Can Do About It
Understanding Java Garbage Collection - And What You Can Do About ItUnderstanding Java Garbage Collection - And What You Can Do About It
Understanding Java Garbage Collection - And What You Can Do About ItAzul Systems Inc.
 
Java at Scale, Dallas JUG, October 2013
Java at Scale, Dallas JUG, October 2013Java at Scale, Dallas JUG, October 2013
Java at Scale, Dallas JUG, October 2013Azul Systems Inc.
 

More from Azul Systems Inc. (12)

Advancements ingc andc4overview_linkedin_oct2017
Advancements ingc andc4overview_linkedin_oct2017Advancements ingc andc4overview_linkedin_oct2017
Advancements ingc andc4overview_linkedin_oct2017
 
Understanding GC, JavaOne 2017
Understanding GC, JavaOne 2017Understanding GC, JavaOne 2017
Understanding GC, JavaOne 2017
 
Azul Systems open source guide
Azul Systems open source guideAzul Systems open source guide
Azul Systems open source guide
 
Intelligent Trading Summit NY 2014: Understanding Latency: Key Lessons and Tools
Intelligent Trading Summit NY 2014: Understanding Latency: Key Lessons and ToolsIntelligent Trading Summit NY 2014: Understanding Latency: Key Lessons and Tools
Intelligent Trading Summit NY 2014: Understanding Latency: Key Lessons and Tools
 
The evolution of OpenJDK: From Java's beginnings to 2014
The evolution of OpenJDK: From Java's beginnings to 2014The evolution of OpenJDK: From Java's beginnings to 2014
The evolution of OpenJDK: From Java's beginnings to 2014
 
Push Technology's latest data distribution benchmark with Solarflare and Zing
Push Technology's latest data distribution benchmark with Solarflare and ZingPush Technology's latest data distribution benchmark with Solarflare and Zing
Push Technology's latest data distribution benchmark with Solarflare and Zing
 
The Art of Java Benchmarking
The Art of Java BenchmarkingThe Art of Java Benchmarking
The Art of Java Benchmarking
 
JVM Memory Management Details
JVM Memory Management DetailsJVM Memory Management Details
JVM Memory Management Details
 
JVM Mechanics: A Peek Under the Hood
JVM Mechanics: A Peek Under the HoodJVM Mechanics: A Peek Under the Hood
JVM Mechanics: A Peek Under the Hood
 
Enterprise Search Summit - Speeding Up Search
Enterprise Search Summit - Speeding Up SearchEnterprise Search Summit - Speeding Up Search
Enterprise Search Summit - Speeding Up Search
 
Understanding Java Garbage Collection - And What You Can Do About It
Understanding Java Garbage Collection - And What You Can Do About ItUnderstanding Java Garbage Collection - And What You Can Do About It
Understanding Java Garbage Collection - And What You Can Do About It
 
Java at Scale, Dallas JUG, October 2013
Java at Scale, Dallas JUG, October 2013Java at Scale, Dallas JUG, October 2013
Java at Scale, Dallas JUG, October 2013
 

Recently uploaded

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 

Recently uploaded (20)

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

Enabling Java in Latency Sensitive Environments with Zing

  • 1. ©2014 Azul Systems, Inc. Enabling Java in Latency Sensitive Environments Matt Schuetze, Product Manager, Azul Systems DotCMS Bootcamp, Nashville, October 23, 2014
  • 2. ©2014 Azul Systems, Inc. High level agenda Intro, jitter vs. JITTER Java in a low latency application world The (historical) fundamental problems What people have done to try to get around them What if the fundamental problems were eliminated? What 2014 looks like for Low latency Java developers
  • 4. ©2014 Azul Systems, Inc. Is “jitter” a proper word for this? 99%‘ile is ~60 usec Max is ~30,000% higher than “typical”
  • 5. ©2014 Azul Systems, Inc. About Azul We make scalable Virtual Machines Have built “whatever it takes to get job done” since 2002 3 generations of custom SMP Multi-core HW (Vega) Now Pure software for commodity x86 (Zing) Known for Low Latency, Consistent execution, and Large data set excellence Vega C4
  • 6. ©2014 Azul Systems, Inc. Java in the low latency world
  • 7. ©2014 Azul Systems, Inc. Java in a low latency world Why do people use Java for low latency apps? Are they crazy? No. There are good, easy to articulate reasons Projected lifetime cost Developer productivity Time-to-product, Time-to-market, ... Leverage, ecosystem, ability to hire
  • 8. ©2014 Azul Systems, Inc. E.g. Customer answer to: “Why do you use Java in Algo Trading?” Strategies have a shelf life We have to keep developing and deploying new ones Only one out of N is actually productive Profitability therefore depends on ability to successfully deploy new strategies, and on the cost of doing so Our developers seem to be able to produce 2x-3x as much when using a Java environment as they would with C++ ...
  • 9. ©2014 Azul Systems, Inc. So what is the problem? Is Java Slow? No A good programmer will get roughly the same speed from both Java and C++ A bad programmer won’t get you fast code on either The 50%‘ile and 90%‘ile are typically excellent... It’s those pesky occasional stutters and stammers and stalls that are the problem... Ever hear of Garbage Collection?
  • 10. ©2014 Azul Systems, Inc. Java’s Achilles heel
  • 11. ©2014 Azul Systems, Inc. Stop-The-World Garbage Collection: How bad is it? Let’s ignore the bad multi-second pauses for now... Low latency applications regularly experience “small”, “minor” GC events that range in the 10s of msec Frequency directly related to allocation rate In turn, directly related to throughput So we have great 50%, 90%. Maybe even 99% But 99.9%, 99.99%, Max, all “suck” So bad that it affects risk, profitability, service expectations, etc.
  • 12. ©2014 Azul Systems, Inc. STW-GC effects in a low latency application 99%‘ile is ~60 usec Max is ~30,000% higher than “typical”
  • 13. ©2014 Azul Systems, Inc. One way to deal with Stop-The-World GC
  • 14. ©2014 Azul Systems, Inc. A way to deal with Stop-The-World GC
  • 15. ©2014 Azul Systems, Inc. Another way to cope: “Creative Language” “Guarantee a worst case of 5 msec, 99% of the time” “Mostly” Concurrent, “Mostly” Incremental Translation: “Will at times exhibit long monolithic stop-the-world pauses” “Fairly Consistent” Translation: “Will sometimes show results well outside this range” “Typical pauses in the tens of milliseconds” Translation: “Some pauses are much longer than tens of milliseconds”
  • 16. ©2014 Azul Systems, Inc. What do actual low latency developers do about it? They use “Java” instead of Java They write “in the Java syntax” They avoid allocation as much as possible E.g. They build their own object pools for everything They write all the code they use (no 3rd party libs) They train developers for their local discipline In short: They revert to many of the practices that hurt productivity. They lose out on much of Java.
  • 17. ©2014 Azul Systems, Inc. What do low latency (Java) developers get for all their effort? They still see pauses (usually ranging to tens of msec) But they get fewer (as in less frequent) pauses And they see fewer people able to do the job And they have to write EVERYTHING themselves And they get to debug malloc/free patterns again And they can only use memory in certain ways ... Some call it “fun”... Others “duct tape engineering”...
  • 18. ©2014 Azul Systems, Inc. There is a fundamental problem: Stop-The-World GC mechanisms are contradictory to the fundamental requirements of low latency & low jitter apps
  • 19. ©2014 Azul Systems, Inc. Sustainable Throughput: The throughput achieved while safely maintaining service levels Unsustainable Throughout
  • 20. ©2014 Azul Systems, Inc. It’s an industry-wide problem
  • 21. ©2014 Azul Systems, Inc. Didn’t G1GC fix this in Java7u4? “The one big challenge left for Java on performance is containing pause times. Latency jitter is the only reason to ever use other languages inside Twitter.” --Adam Messinger, CTO of Twitter Citation: Oracle Java 8 global launch video, March 25, 2014
  • 22. ©2014 Azul Systems, Inc. It was an industry-wide problem It’s 2014... Now we have Zing.
  • 23. ©2014 Azul Systems, Inc. The common GC behavior across ALL currently shipping (non-Zing) JVMs ALL use a Monolithic Stop-the-world NewGen “small” periodic pauses (small as in 10s of msec) pauses more frequent with higher throughput or allocation rates Development focus for ALL is on Oldgen collectors Focus is on trying to address the many-second pause problem Usually by sweeping it farther and farther the rug “Mostly X” (e.g. “mostly concurrent”) hides the fact that they refer only to the OldGen part of the collector E.g. CMS, G1, Balanced.... all are OldGen-only efforts ALL use a Fallback to Full Stop-the-world Collection Used to recover when other mechanisms (inevitably) fail Also hidden under the term “Mostly”...
  • 24. ©2014 Azul Systems, Inc. At Azul, STW-GC was addressed head-on We decided to focus on the right core problems Scale & productivity being limited by responsiveness Even “short” GC pauses are considered a problem Responsiveness must be unlinked from key metrics: Transaction Rate, Concurrent users, Data set size, etc. Heap size, Live Set size, Allocation rate, Mutation rate Responsiveness must be continually sustainable Can’t ignore “rare but periodic” events Eliminate ALL Stop-The-World Fallbacks Any STW fallback is a real-world failure
  • 25. ©2014 Azul Systems, Inc. The Zing “C4” Collector Continuously Concurrent Compacting Collector Concurrent, compacting old generation Concurrent, compacting new generation No stop-the-world fallback Always compacts, and always does so concurrently
  • 26. ©2014 Azul Systems, Inc. Benefits
  • 27. ©2014 Azul Systems, Inc. An example of “First day’s run” behavior E-Commerce application
  • 28. ©2014 Azul Systems, Inc. An example of behavior after 4 days of system tuning Low latency application
  • 29. ©2014 Azul Systems, Inc. This is not “just Theory” jHiccup: A tool that measures and reports (as your application is running) if your JVM is running all the time
  • 30. ©2014 Azul Systems, Inc. Discontinuities in Java platform execution - Easy To Measure A telco App with a bit of a “problem” We call these “hiccups”
  • 31. ©2014 Azul Systems, Inc. Oracle HotSpot (pure newgen) Zing Low latency trading application
  • 32. ©2014 Azul Systems, Inc. Oracle HotSpot (pure newgen) Zing Low latency trading application
  • 33. ©2014 Azul Systems, Inc. Low latency - Drawn to scale Oracle HotSpot (pure newgen) Zing
  • 34. ©2014 Azul Systems, Inc. It’s not just for Low Latency Just as easy to demonstrate for human-response-time apps
  • 35. ©2014 Azul Systems, Inc. Portal Application, slow Ehcache “churn”
  • 36. ©2014 Azul Systems, Inc. Portal Application, slow Ehcache “churn”
  • 37. ©2014 Azul Systems, Inc. Portal Application - Drawn to scale
  • 38. ©2014 Azul Systems, Inc. A Very Local Case Study DotCMS with Zing
  • 39. ©2014 Azul Systems, Inc. Human-Time Real World Latency Case DotCMS used in enterprise scale web system. Footprint growing year over year, so now at 1000+ websites across 3 DotCMS servers, each with 40GB heaps Observed 170 second (ouch!) GC pauses during business hours using traditional JVM. Server nodes fall out of cluster, lose sync. Staff spent man-weeks tuning traditional JVM flags for GC, mostly trial and error, making mild headway in reducing spikes.
  • 40. ©2014 Azul Systems, Inc. Real World Latency Results DotCMS met Azul at JavaOne Discussion led to Zing as viable alternative DotCMS staff ran in house compatibility tests with positive results POC on customer live system showed excellent promise Production System now stays well under 2 second hard SLA limit Cluster nodes no longer fall out for GC, so better system stability overall
  • 41. ©2014 Azul Systems, Inc. In DotCMS CTO’s words:
  • 42. ©2014 Azul Systems, Inc. Remind me how GC tuning sucks
  • 43. ©2014 Azul Systems, Inc. Java GC tuning is “hard”… Examples of actual command line GC tuning parameters: Java -Xmx12g -XX:MaxPermSize=64M -XX:PermSize=32M -XX:MaxNewSize=2g -XX:NewSize=1g -XX:SurvivorRatio=128 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=0 -XX:CMSInitiatingOccupancyFraction=60 -XX:+CMSParallelRemarkEnabled -XX:+UseCMSInitiatingOccupancyOnly -XX:ParallelGCThreads=12 -XX:LargePageSizeInBytes=256m … Java –Xms8g –Xmx8g –Xmn2g -XX:PermSize=64M -XX:MaxPermSize=256M -XX:-OmitStackTraceInFastThrow -XX:SurvivorRatio=2 -XX:- UseAdaptiveSizePolicy -XX:+UseConcMarkSweepGC -XX:+CMSConcurrentMTEnabled -XX:+CMSParallelRemarkEnabled -XX:+CMSParallelSurvivorRemarkEnabled -XX:CMSMaxAbortablePrecleanTime=10000 -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=63 -XX:+UseParNewGC –Xnoclassgc …
  • 44. ©2014 Azul Systems, Inc. A few GC tuning flags Source: Word Cloud created by Frank Pavageau in his Devoxx FR 2012 presentation titled “Death by Pauses”
  • 45. ©2014 Azul Systems, Inc. The complete guide to Zing GC tuning java -Xmx40g
  • 46. ©2014 Azul Systems, Inc. Any other problems beyond GC?
  • 47. ©2014 Azul Systems, Inc. JVMs make many tradeoffs often trading speed vs. outliers Some speed techniques come at extreme outlier costs E.g. (“regular”) biased locking E.g. counted loops optimizations Deoptimization Lock deflation Weak References, Soft References, Finalizers Time To Safe Point (TTSP)
  • 48. ©2014 Azul Systems, Inc. Time To Safepoint (TTSP) Your new #1 enemy (Once GC itself was taken care of) Many things in a JVM (still) use a global safepoint All threads brought to a halt, at a “safe to analyze” point in code, and then released after work is done. E.g. GC phase shifts, Deoptimization, Class unloading, Thread Dumps, Lock Deflation, etc. etc. A single thread with a long time-to-safepoint path can cause an effective pause for all other threads. Consider this a variation on Amdahl’s law. Many code paths in the JVM are long...
  • 49. ©2014 Azul Systems, Inc. Time To Safepoint (TTSP) the most common examples Array copies and object clone() Counted loops Many other variants in the runtime... Measure, Measure, Measure... Zing has a built-in TTSP profiler At Azul, the CTO walks around with a 0.5msec stick...
  • 50. ©2014 Azul Systems, Inc. OS related stuff (once GC and TTSP are taken care of) OS related hiccups tend to dominate once GC and TTSP are removed as issues. Take scheduling pressure seriously (Duh?) Hyper-threading (good? bad?) Swapping (Duh!) Power management Transparent Huge Pages (THP). ...
  • 51. ©2014 Azul Systems, Inc. Takeaway: In 2014, “Real” Java is finally viable for low latency applications GC is no longer a dominant issue, even for outliers 2-3msec worst case case with “easy” tuning < 1 msec worst case is very doable No need to code in special ways any more You can finally use “real” Java for everything You can finally 3rd party libraries without worries You can finally use as much memory as you want You can finally use regular (good) programmers
  • 52. ©2014 Azul Systems, Inc. One-liner Takeaway: Zing: A cure for the Java hiccups
  • 53. ©2014 Azul Systems, Inc. Q&A and In Closing… Go get some Zing today! At very least download JHiccup. Meet us at the Azul table. Review Azul folio in your bag. Thanks for a great Bootcamp! www.azul.com