SlideShare a Scribd company logo
©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.	
 	
 	
 	
 	
 	
LMAX Exchange and the Zing JVM
Mark Price, Senior Developer, LMAX Exchange

Gil Tene, CTO & co-Founder, Azul Systems
Low Latency Java
in the Real World
©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.	
 	
 	
 	
 	
 	
LMAX Exchange and the Zing JVM
Mark Price, Senior Developer, LMAX Exchange

Gil Tene, CTO & co-Founder, Azul Systems
Low Latency
Java
in the
Real World
©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.	
 	
 	
 	
 	
 	
About me: Gil Tene
co-founder, CTO @Azul
Systems
Have been working on “think
different” GC approaches
since 2002
A Long history building
Virtual & Physical Machines,
Operating Systems,
Enterprise apps, etc...
I also depress people by
demonstrating how terribly
wrong their latency
measurements are
 * working on real-world trash compaction issues, circa 2004
©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.	
 	
 	
 	
 	
 	
About me: Mark Price
Senior Developer at
LMAX Exchange
Performance enthusiast
Touched pretty much
everything at LMAX over a
period of 8 years

Currently focusing on
performance and monitoring
I’m the guy that everyone
used to come to with their
GC logs

Then it said
“Concurrent

Mode Failure”
©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.	
 	
 	
 	
 	
 	
Background
LMAX Exchange is a venue for low-latency
FX trading
World’s ïŹrst regulated MTF for transparent,
order-driven FX trading
1st place in Tech Track 100 2014
We aim to be the world’s fastest retail FX
exchange
Open culture. A lot of open source
©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.	
 	
 	
 	
 	
 	
Zing: what is it good for?
Not just fast. Always fast.
Eliminates GC as a problem/concern
Addresses all forms of GC pauses, large & small
Low latency or Human-scale latency
Small or Large heaps, Low or High throughput
GC is simply a solved problem. Move on

Idiomatic Java code “just works”
Even when blips and pauses are not an option
©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.	
 	
 	
 	
 	
 	
Stay Responsive
Even when trafïŹc patterns change
©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.	
 	
 	
 	
 	
 	
Real world trafïŹc patterns
Not constant. Not Stochastic.
©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.
©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.	
 	
 	
 	
 	
 	
Java for low latency
Seriously?
Yes...
Time to Stability
Time to Market
Time to Performance
Overall productivity and delivery beneïŹts
trump the various downsides
©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.	
 	
 	
 	
 	
 	
All Java
©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.	
 	
 	
 	
 	
 	
The good, the bad, and the ugly
Java is fast. Java is productive.
Good developers will produce good, fast code
Bad developers will produce bad, slow code
More Java devs than C/C++ devs (good & bad)
But JVMs are [normally] not consistently fast
GC pauses & Deoptimization & DeïŹ‚ation, oh my.
Low latency “Java” usually:
Written in the Java syntax. Avoids idiomatic Java.
Avoid using anyone else’s code...
©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.	
 	
 	
 	
 	
 	
Zing’s impact on low latency Java
Zing is a JVM that values consistent speed
GC (and JVM) “noise” reduced to below OS “noise”
Keeps the good
Removes the bad and the ugly
Eliminates GC-related engineering efforts
All the associated bad and ugly choices
Idiomatic Java, not just “Java”
©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.	
 	
 	
 	
 	
 	
Zing at LMAX Exchange
Started 2 years ago
Incremented from most critical to less critical
Next cover all latency-sensitive system
Also cover throughput critical systems
Throughput Critical
Latency Critical
Back

pressure
Outliers
©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.
©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.
©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.	
 	
 	
 	
 	
 	
Development at LMAX Exchange
Heavy focus on TDD and CI
9000+ acceptance tests
Performance is treated as just another part of CI
Regression in performance same as a functional failure
ConïŹdence to make large changes
©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.	
 	
 	
 	
 	
 	
Zing at LMAX Exchange: BeneïŹts
Improved latency behaviors
Reduced engineering effort
No more battling GC in code
Performance tuning cycles shorter
Idiomatic Java is a big deal
can avoid converting to “special practices” java
can “ease up” on no-allocation coding styles

keep using/leveraging 3rd party code
more productive overall...
©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.	
 	
 	
 	
 	
 	
Lessons Learnt
Attacking critical parts ïŹrst:
may delay things...
critical parts have had engineering effort applied
smaller initial gains
longer time to gain conïŹdence
With hindsight:
Could have started from “outside in” instead
Larger initial gains, shorter time-to-conïŹdence
May have gotten to wider deployment faster
©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.	
 	
 	
 	
 	
 	
Lessons Learnt:
GC is not the only problem
GC does tend to dominate outliers (pre-Zing)
it is natural to assume all big bad stuff is GC
with GC outliers gone, remaining problems surface
Some harder things:
page cache (kernel) lock contention
power management tuning in BIOS & OS
mapped ïŹle access faults & safepoints
©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.	
 	
 	
 	
 	
 	
Lessons Learnt:
Proactively override Linux defaults
Out-of-the box Linux has some bad defaults
Bad for things that care about latency...
E.g. all these should be changed upfront:
Page cache: vm.min_free_kbytes [needs >1GB]
Transparent Huge Pages (THP) [should be turned off]
Swappiness [should be set to 0]
zone_reclaim_info [should be set to 0]
Each can cause multi-100s-of-msec outliers
©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.	
 	
 	
 	
 	
 	
Lessons Learnt:
Measure, Measure, Measure
We were already measuring & collecting a lot
But jitter/hiccup/outlier measurement is tough
Especially across multiple hops
Detailed latency distribution measurements
Helped triage outlier issues and focus efforts
Full percentile spectrum histograms
Record system-level “hiccups” everywhere
©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.	
 	
 	
 	
 	
 	
Observation points
©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.	
 	
 	
 	
 	
 	
Time-stamping points
©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.	
 	
 	
 	
 	
 	
Summary
Java is both viable and proïŹtable for low latency
With “regular JVMs” you have to jump through
some hoops to get there
Zing helps low latency in Java be as easy as low
latency in other languages
Once you stop dealing with JVM-related issues,
you can get on with the interesting stuff
©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.	
 	
 	
 	
 	
 	
Q & A

More Related Content

PDF
LMAX Architecture
PDF
High Concurrency Architecture at TIKI
PPSX
LMAX Disruptor as real-life example
PPTX
Introduction à la démarche Devops
KEY
Concurrent Programming Using the Disruptor
PDF
Grokking TechTalk #33: High Concurrency Architecture at TIKI
PDF
An Introduction to Kubernetes
PDF
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
 
LMAX Architecture
High Concurrency Architecture at TIKI
LMAX Disruptor as real-life example
Introduction à la démarche Devops
Concurrent Programming Using the Disruptor
Grokking TechTalk #33: High Concurrency Architecture at TIKI
An Introduction to Kubernetes
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
 

What's hot (20)

PPTX
Introduction to Kubernetes
PDF
Getting Ready to Use Redis with Apache Spark with Dvir Volk
PDF
HBaseCon 2012 | Lessons learned from OpenTSDB - Benoit Sigoure, StumbleUpon
PDF
WekaIO: Making Machine Learning Compute Bound Again
PDF
Dean keynote-ladis2009
PPTX
Stability Patterns for Microservices
PPTX
Introduction to Sharding
PDF
Storage tiering and erasure coding in Ceph (SCaLE13x)
PDF
Introduction to Apache Cassandra
PDF
AMD EPYCℱ Microprocessor Architecture
 
PDF
Ceph issue 핮êȰ ì‚ŹëĄ€
PDF
[OpenStack Days Korea 2016] Track1 - All flash CEPH ê”Źì„± 및 씜적화
PDF
Comparison of-foss-distributed-storage
PDF
InnoDB Architecture and Performance Optimization, Peter Zaitsev
PPTX
IBM RedHat OCP Vs xKS.pptx
PPTX
Discover Quarkus and GraalVM
PDF
Ceph Month 2021: RADOS Update
PDF
Moving to PCI Express based SSD with NVM Express
PDF
Seastore: Next Generation Backing Store for Ceph
PPTX
Asynchronous processing in big system
Introduction to Kubernetes
Getting Ready to Use Redis with Apache Spark with Dvir Volk
HBaseCon 2012 | Lessons learned from OpenTSDB - Benoit Sigoure, StumbleUpon
WekaIO: Making Machine Learning Compute Bound Again
Dean keynote-ladis2009
Stability Patterns for Microservices
Introduction to Sharding
Storage tiering and erasure coding in Ceph (SCaLE13x)
Introduction to Apache Cassandra
AMD EPYCℱ Microprocessor Architecture
 
Ceph issue 핮êȰ ì‚ŹëĄ€
[OpenStack Days Korea 2016] Track1 - All flash CEPH ê”Źì„± 및 씜적화
Comparison of-foss-distributed-storage
InnoDB Architecture and Performance Optimization, Peter Zaitsev
IBM RedHat OCP Vs xKS.pptx
Discover Quarkus and GraalVM
Ceph Month 2021: RADOS Update
Moving to PCI Express based SSD with NVM Express
Seastore: Next Generation Backing Store for Ceph
Asynchronous processing in big system
Ad

Viewers also liked (20)

PPT
Rmppt
PPTX
Change management
PPTX
Sales Hacker Conference San Francisco - Cliff Cate - Aligning Sales and Custo...
PDF
Building & Leading High Performance Teams
PPTX
Low latency in java 8 v5
PDF
Operationalizing Change Management
PDF
Continuous delivery with Gradle
PDF
Managing change during reorganization
 
PDF
Reactive Programming Models for IoT
PDF
The Cloud Native Journey
PPTX
3 Success Factors that Define High Performance Teams
PPTX
Reward system hr management od interventions - Organizational Change and D...
PPT
Leading High Performance Teams
PDF
Containers, Docker, and Security: State Of The Union (LinuxCon and ContainerC...
PPTX
Strategic total rewards management remuneration and rewards summit 11 june 2014
PDF
Without Self-Service Operations, the Cloud is Just Expensive Hosting 2.0 - (a...
PDF
Containerization is more than the new Virtualization: enabling separation of ...
PPT
Ch10 - Organisation theory design and change gareth jones
PPTX
Types of Power
PPT
Characteristics Of High Performance Teams
Rmppt
Change management
Sales Hacker Conference San Francisco - Cliff Cate - Aligning Sales and Custo...
Building & Leading High Performance Teams
Low latency in java 8 v5
Operationalizing Change Management
Continuous delivery with Gradle
Managing change during reorganization
 
Reactive Programming Models for IoT
The Cloud Native Journey
3 Success Factors that Define High Performance Teams
Reward system hr management od interventions - Organizational Change and D...
Leading High Performance Teams
Containers, Docker, and Security: State Of The Union (LinuxCon and ContainerC...
Strategic total rewards management remuneration and rewards summit 11 june 2014
Without Self-Service Operations, the Cloud is Just Expensive Hosting 2.0 - (a...
Containerization is more than the new Virtualization: enabling separation of ...
Ch10 - Organisation theory design and change gareth jones
Types of Power
Characteristics Of High Performance Teams
Ad

Similar to QCon London: Low latency Java in the real world - LMAX Exchange and the Zing JVM (20)

PPTX
Enabling Java in Latency Sensitive Environments - Dallas JUG April 2015
PPTX
Enabling Java in Latency-Sensitive Environments - Austin JUG April 2015
PDF
Vertafore: Database Evaluation - Selecting Apache Cassandra
PDF
How NOT to Measure Latency
PDF
Understanding Hardware Transactional Memory
PDF
DotCMS Bootcamp: Enabling Java in Latency Sensitivie Environments
PPTX
Skytap parasoft webinar new years resolution- accelerate sdlc
PPTX
JVMCON Java in the 21st Century: are you thinking far enough ahead?
PDF
Enabling Java in Latency-Sensitive Applications
PDF
Dev talks Cluj 2018 : Java in the 21 Century: Are you thinking far enough ahead?
PDF
How to Become a Winner in the JVM Performance-Tuning Battle
PDF
Using containerization to enable your microservice architecture
PPTX
Real World Serverless
PDF
Microservices
 
PDF
Enabling Java in Latency Sensitive Applications by Gil Tene, CTO, Azul Systems
PDF
Pivotal microservices spring_pcf_skillsmatter.pptx
PPTX
The Cloud Native Journey
PDF
Migrate from Terma Software Jaws to CA Workload Automation iDash for Enhanced...
PDF
Scaling FreeSWITCH Performance
PDF
Edge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEA
Enabling Java in Latency Sensitive Environments - Dallas JUG April 2015
Enabling Java in Latency-Sensitive Environments - Austin JUG April 2015
Vertafore: Database Evaluation - Selecting Apache Cassandra
How NOT to Measure Latency
Understanding Hardware Transactional Memory
DotCMS Bootcamp: Enabling Java in Latency Sensitivie Environments
Skytap parasoft webinar new years resolution- accelerate sdlc
JVMCON Java in the 21st Century: are you thinking far enough ahead?
Enabling Java in Latency-Sensitive Applications
Dev talks Cluj 2018 : Java in the 21 Century: Are you thinking far enough ahead?
How to Become a Winner in the JVM Performance-Tuning Battle
Using containerization to enable your microservice architecture
Real World Serverless
Microservices
 
Enabling Java in Latency Sensitive Applications by Gil Tene, CTO, Azul Systems
Pivotal microservices spring_pcf_skillsmatter.pptx
The Cloud Native Journey
Migrate from Terma Software Jaws to CA Workload Automation iDash for Enhanced...
Scaling FreeSWITCH Performance
Edge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEA

More from Azul Systems, Inc. (7)

PDF
Unleash the Power of Apache Cassandra
PDF
JVM Language Summit: Object layout presentation
PDF
JVM Language Summit: Object layout workshop
PDF
What's New in the JVM in Java 8?
PDF
DC JUG: Understanding Java Garbage Collection
PDF
Silicon Valley JUG: JVM Mechanics
PDF
Winning With Java at Market Open
Unleash the Power of Apache Cassandra
JVM Language Summit: Object layout presentation
JVM Language Summit: Object layout workshop
What's New in the JVM in Java 8?
DC JUG: Understanding Java Garbage Collection
Silicon Valley JUG: JVM Mechanics
Winning With Java at Market Open

Recently uploaded (20)

PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
ai tools demonstartion for schools and inter college
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
AI in Product Development-omnex systems
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Understanding Forklifts - TECH EHS Solution
PDF
medical staffing services at VALiNTRY
PPTX
history of c programming in notes for students .pptx
PDF
How Creative Agencies Leverage Project Management Software.pdf
PPTX
Introduction to Artificial Intelligence
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Digital Strategies for Manufacturing Companies
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Design an Analysis of Algorithms I-SECS-1021-03
Navsoft: AI-Powered Business Solutions & Custom Software Development
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
CHAPTER 2 - PM Management and IT Context
Odoo Companies in India – Driving Business Transformation.pdf
ai tools demonstartion for schools and inter college
Which alternative to Crystal Reports is best for small or large businesses.pdf
AI in Product Development-omnex systems
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Understanding Forklifts - TECH EHS Solution
medical staffing services at VALiNTRY
history of c programming in notes for students .pptx
How Creative Agencies Leverage Project Management Software.pdf
Introduction to Artificial Intelligence
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Digital Strategies for Manufacturing Companies
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus

QCon London: Low latency Java in the real world - LMAX Exchange and the Zing JVM

  • 1. ©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd. LMAX Exchange and the Zing JVM Mark Price, Senior Developer, LMAX Exchange Gil Tene, CTO & co-Founder, Azul Systems Low Latency Java in the Real World
  • 2. ©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd. LMAX Exchange and the Zing JVM Mark Price, Senior Developer, LMAX Exchange Gil Tene, CTO & co-Founder, Azul Systems Low Latency Java in the Real World
  • 3. ©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd. About me: Gil Tene co-founder, CTO @Azul Systems Have been working on “think different” GC approaches since 2002 A Long history building Virtual & Physical Machines, Operating Systems, Enterprise apps, etc... I also depress people by demonstrating how terribly wrong their latency measurements are
 * working on real-world trash compaction issues, circa 2004
  • 4. ©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd. About me: Mark Price Senior Developer at LMAX Exchange Performance enthusiast Touched pretty much everything at LMAX over a period of 8 years
 Currently focusing on performance and monitoring I’m the guy that everyone used to come to with their GC logs
 Then it said “Concurrent Mode Failure”
  • 5. ©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd. Background LMAX Exchange is a venue for low-latency FX trading World’s ïŹrst regulated MTF for transparent, order-driven FX trading 1st place in Tech Track 100 2014 We aim to be the world’s fastest retail FX exchange Open culture. A lot of open source
  • 6. ©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd. Zing: what is it good for? Not just fast. Always fast. Eliminates GC as a problem/concern Addresses all forms of GC pauses, large & small Low latency or Human-scale latency Small or Large heaps, Low or High throughput GC is simply a solved problem. Move on
 Idiomatic Java code “just works” Even when blips and pauses are not an option
  • 7. ©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd. Stay Responsive Even when trafïŹc patterns change
  • 8. ©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd. Real world trafïŹc patterns Not constant. Not Stochastic.
  • 9. ©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.
  • 10. ©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd. Java for low latency Seriously? Yes... Time to Stability Time to Market Time to Performance Overall productivity and delivery beneïŹts trump the various downsides
  • 11. ©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd. All Java
  • 12. ©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd. The good, the bad, and the ugly Java is fast. Java is productive. Good developers will produce good, fast code Bad developers will produce bad, slow code More Java devs than C/C++ devs (good & bad) But JVMs are [normally] not consistently fast GC pauses & Deoptimization & DeïŹ‚ation, oh my. Low latency “Java” usually: Written in the Java syntax. Avoids idiomatic Java. Avoid using anyone else’s code...
  • 13. ©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd. Zing’s impact on low latency Java Zing is a JVM that values consistent speed GC (and JVM) “noise” reduced to below OS “noise” Keeps the good Removes the bad and the ugly Eliminates GC-related engineering efforts All the associated bad and ugly choices Idiomatic Java, not just “Java”
  • 14. ©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd. Zing at LMAX Exchange Started 2 years ago Incremented from most critical to less critical Next cover all latency-sensitive system Also cover throughput critical systems Throughput Critical Latency Critical Back pressure Outliers
  • 15. ©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.
  • 16. ©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd.
  • 17. ©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd. Development at LMAX Exchange Heavy focus on TDD and CI 9000+ acceptance tests Performance is treated as just another part of CI Regression in performance same as a functional failure ConïŹdence to make large changes
  • 18. ©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd. Zing at LMAX Exchange: BeneïŹts Improved latency behaviors Reduced engineering effort No more battling GC in code Performance tuning cycles shorter Idiomatic Java is a big deal can avoid converting to “special practices” java can “ease up” on no-allocation coding styles
 keep using/leveraging 3rd party code more productive overall...
  • 19. ©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd. Lessons Learnt Attacking critical parts ïŹrst: may delay things... critical parts have had engineering effort applied smaller initial gains longer time to gain conïŹdence With hindsight: Could have started from “outside in” instead Larger initial gains, shorter time-to-conïŹdence May have gotten to wider deployment faster
  • 20. ©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd. Lessons Learnt: GC is not the only problem GC does tend to dominate outliers (pre-Zing) it is natural to assume all big bad stuff is GC with GC outliers gone, remaining problems surface Some harder things: page cache (kernel) lock contention power management tuning in BIOS & OS mapped ïŹle access faults & safepoints
  • 21. ©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd. Lessons Learnt: Proactively override Linux defaults Out-of-the box Linux has some bad defaults Bad for things that care about latency... E.g. all these should be changed upfront: Page cache: vm.min_free_kbytes [needs >1GB] Transparent Huge Pages (THP) [should be turned off] Swappiness [should be set to 0] zone_reclaim_info [should be set to 0] Each can cause multi-100s-of-msec outliers
  • 22. ©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd. Lessons Learnt: Measure, Measure, Measure We were already measuring & collecting a lot But jitter/hiccup/outlier measurement is tough Especially across multiple hops Detailed latency distribution measurements Helped triage outlier issues and focus efforts Full percentile spectrum histograms Record system-level “hiccups” everywhere
  • 23. ©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd. Observation points
  • 24. ©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd. Time-stamping points
  • 25. ©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd. Summary Java is both viable and proïŹtable for low latency With “regular JVMs” you have to jump through some hoops to get there Zing helps low latency in Java be as easy as low latency in other languages Once you stop dealing with JVM-related issues, you can get on with the interesting stuff
  • 26. ©2015 Azul Systems, Inc. ©2015 LMAX Exchange Ltd. Q & A