SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
Advanced Java Data Locality and
Data IPC Transport Solutions:
An Introduction to OpenHFT
ben.cotton@jpmorgan.com
ben.cotton@alumni.rutgers.edu
Jan 27, 2015
For real-time Java deployments
(with the strictest SLAs) the
problem of JVM “Stop the World”
GC activity (on medium-lived on-
Heap objects) is a MONSTROUS
problem.
2
Simple Remedy?
Design Java developments and deployments so that medium-lived
Collections (e.g. that “old dog” HashMap) object instance(s) are taught a
“new trick” …. That “new trick” is simple: take HashMap completely Off-Heap.
The	
  Heap	
  
Good	
  Boy!	
  
	
  
Off-­‐Heap	
  
you	
  go	
  …	
  
3
But What kind of HashMap are we putting Off-Heap?
•  java.util.HashMap ?
•  Collections.synchronizedMap( java.util.HashMap ); ?
•  java.util.concurrent.ConcurrentHashMap ?
•  something entirely different ?
ANSWER: something very different (indeed)!
•  OpenHFT’s Chronicle Map SOLUTION
•  net.openhft.chronicle.map.ChronicleMap
4
What exactly is OpenHFT?
•  100% Open Source
•  Designed to empower Higher Frequency Trading (HFT)
•  https://github.com/OpenHFT (developer source repo)
•  http://www.openhft.net (Products. Services. Training)
•  Provides modules that empower ultra low latency Java deployments to achieve
REAL-TIME compliance (with even their strictest of SLAs)
•  Java-Lang (Marshalling / GC Free De-Marshalling / Thread-SAFE / IPC-SAFE /
Off-Heap/ 64-bit ByteBuffers)
•  Chronicle-Queue (persisted low-latency Queue messaging and Logging)
•  Chroncile-Map (ChronicleMap, Thread-SAFE/IPC-SAFE/Off-Heap)
•  Chronicle-Engine Fast Data Framework.
•  Java-Runtime-Compiler (builds OpenHFT native impl classes – in process –
of user supplied JBI interfaces)
•  Java-Thread-Affinity (allows JVM Threads to be pinned by affinity to specific
OS cpus)
•  TransFIX (ultra low latency FIX engine)
5
What really is OpenHFT?
OpenHFT is a 100% OSS solution that empowers Java developers to deliver
the highest performing and most flexible
•  Data Locality (Optimised memory layout)
And
•  Data IPC Transport (waaay faster than UDP/
TCP)
Capabilities.
6
PART 1
OpenHFT as an Advanced Java Data Locality Provider
(That’s right folks! We’re going Off-Heap)
7
java.util.HashMap
8
Collections.synchronizedMap( java.util.HashMap );
9
10
11
Java Heap Layout: Through the Generations View
12
OpenHFT: Off-Heap ChronicleMap … an Architectural View
13
OpenHFT : Step #1 (PID 1)
14
OpenHFT : Step #2 (PID 1) – thread safe write to off heap
15
OpenHFT : Step #3 (PID 1)
16
OpenHFT : Step #4 (PID 2) – thread safe read (concurrent)
17
OpenHFT : Step #5 (PID 2) update an existing entry (thread safe)
18
OpenHFT : Step #6 (PID 2)
19
OpenHFT : Step #6 (PID 2)
S
OpenHFT code sample demo Summary:
-  MT-SAFE operations
-  IPC-SAFE operations
-  IPC-ATOMIC operations
-  ZERO-COPY (*)
-  GC-Free Marshalling/De-Marshalling
-  Ambition to provide the symmetry of
java.util.concurrent.* API support across native Linux
processes (not just Threads!)
-  Nanosecond transport latency (stay tuned for details)
* (note on Map<K,V > type domain support status).
20
Performance Results: CHM vs. SHM
On Linux 14.04, dual E5-2650 v2 @ 2.60GHz, 128 GB memory, each entry updated 32 times.
ConcurrentHashMap -Xmx110g -Xms110g -verbose:gc
21
Performance Results: CHM vs. SHM
On Linux 14.04, dual E5-2650 v2 @ 2.60GHz, 128 GB memory, each entry updated 32 times.
22
OpenHFT as an Off-Heap JCACHE Provider (e.g. RedHat JDG Infinispan)
23
OpenHFT empowers developers to use OpenJDK and Native Linux OS to
100% protect their medium-lived Java Collections (ChronicleMap) from being
impacted by STW GC pauses.
24
PART 2
OpenHFT as an Advanced Java IPC Transport Provider
(That’s right folks! UDP/TCP now joined by
native Linux /dev/shm IPC)
25
OSI Model of Networking Layers:
26
Java 7 Sockets Direct Protocol: Delivering SDP/IB as a Transport
27
Java 7 Sockets Direct Protocol: Delivering to Java its first RDMA capability
28
Intel iWARP: potential to empower Java 9 with SDP/10gE as a Transport
With SDP/10gE Java 9 will be able to deliver RDMA to the Java Ethernet
masses!
29
OpenHFT as a /dev/shm IPC Transport Provider:
peter.lawrey@higherfrequencytrading.com
“I	
  want	
  to	
  be	
  disrup=ve	
  rather	
  than	
  
rehash	
  or	
  just	
  slightly	
  improve	
  exis=ng	
  
products.”	
  
	
  
	
   	
   	
  	
  	
  	
  	
  	
  	
  	
  	
  08/14/2014	
  
	
  	
  	
  Ah,	
  the	
  glory!	
  
30
OpenHFT as a /dev/shm IPC Transport Provider:
ZERO COPY capability
Advanced BytesMarshallable impl of Externalizable – for CBV Copy tolerant
parts of Liquidity Risk AE.
ZERO GC
CAPACITY LIMITED ONLY BY PHYSICAL RAM
CONSISTENTLY 438% Faster than On JVM Heap Cache<K,V> like operands
JPM Tests show= Mean 350 nano-second /dev/shm latency (ZC
Entry<K,V> transport, RDR_DIM Mock)
DOES NOT SUPPORT FULLY-TRANSITIVE GENERIC V=Object Graph as
Cache<K,V> Operand. Currently {String, primitive} for ZC. NO immediate
Plug-N-Play w/ RDR_DIM Operands used by Liquidity Risk AE
NOT YET ADAPTED w/in RedHat JDG as JSR-107 compliant Cache<K,V>
Operand.
31
PROOF IS IN THE TEST RESULTS: What do we get using OpenHFT vs.
RedHat JDG?
OpenHFT /dev/shm/SharedHashMap<K,V> as operand provider:
To try , run the following command in 2 separated terminals ( (rm /dev/shm/*) Left
player must be started first!):
java 
org.junit.runner.JUnitCore 
net.openhft.collections.fromdocs.com.jpmorgan.pingpong_latency.PingPongPlayerLeft
java 
org.junit.runner.JUnitCore 
net.openhft.collections.fromdocs.com.jpmorgan.pingpong_latency.PingPongPlayerRight
32424: 1 x _bondEntryV.getCoupon() (last _couponL=[5.00 %]) in 37.0 nanos
32425: 1 x _bondEntryV.getCoupon() (last _couponL=[5.00 %]) in 37.5 nanos
32423: 1 x _bondEntryV.getCoupon() (last _couponR=[4.00 %]) in 37.0 nanos
32424: 1 x _bondEntryV.getCoupon() (last _couponR=[4.00 %]) in 31.0 nanos
Full results at
https://github.com/Cotton-Ben/HugeCollections/tree/master/collections/src/
test/java/net/openhft/collections/fromdocs/com/jpmorgan/pingpong_latency
32
OpenHFT /dev/shm/SharedHashMap<K,V> as operand provider:
33
PROOF IS IN THE TEST RESULTS: What do we get using OpenHFT vs.
RedHat JDG?
RedHat JDG and JCACHE<K,V> as operand provider:
To try with a distributed cache, run the following command in separated terminals:
java 
-cp "target/classes:target/dependency/*“ 
org.infinispan.quickstart.clusteredcache.Node 
-d LEFT
java 
-cp "target/classes:target/dependency/*“ 
org.infinispan.quickstart.clusteredcache.Node 
-d RIGHT
counter=[217924] cache.put('369604103',3.000%); took 92,599 nanos
counter=[217925] cache.put('369604103',6.000%); took 90,062 nanos
counter=[42529] fl=[5%] = cache.get('369604103'); took 52,624 nanos
counter=[42530] fl=[6%] = cache.get('369604103'); took 47,981 nanos
( full results at
https://github.com/Cotton-Ben/infinispan-quickstart/tree/master/clustered-
cache )
34
RedHat JDG and JCACHE<K,V> as operand provider (1,000x slower)
35
Bottom Line = Tests by Real-Time Liquidity Risk Technology AggEng team
imperically demonstrate that OpenHFT off-heap over /dev/shm IPC transport is
1,000x faster than RedHat JDG on-heap over UDP OSI-Loopback IPC transport.
IMMEDIATE NEXT STEPS:
NO DOUBT ABOUT IT = We need the OpenHFT off heap capability made
available to us via the RedHat JDG product and its JCACHE API!
Explicit commits from Mircea re: adapting Peter’s OpenHFT SHM as RedHat JDG
interoperable JSR-107 Cache<K,V>. RedHat customer support case?
Explicit commits from Bela re: “short circuiting” all node ßà node transport
resolution to use /dev/shm IPC as transport (instead of TCP/UDP) whenever
possible … RedHat customer support case?
Explicit commits from Peter re: supporting above with OpenHFT as the Off-Heap
provider. JPM retain OpenHFT via support subscription?
Continued commits/time planning re: Ben, Dmitry, Xiao efforts to maintained
Fork’d repo and build sound/complete/confirming tests.
36
THE END
Note: For all things re OpenHFT
Please contact:
Peter.Lawrey@higherfrequencytrading.com
www.openhft.net
Peter.Lawrey@higherfrequencytrading.com
www.openhft.net 37

Contenu connexe

Tendances

High Frequency Trading and NoSQL database
High Frequency Trading and NoSQL databaseHigh Frequency Trading and NoSQL database
High Frequency Trading and NoSQL databasePeter Lawrey
 
Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)
Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)
Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)Red Hat Developers
 
Deterministic behaviour and performance in trading systems
Deterministic behaviour and performance in trading systemsDeterministic behaviour and performance in trading systems
Deterministic behaviour and performance in trading systemsPeter Lawrey
 
Writing and testing high frequency trading engines in java
Writing and testing high frequency trading engines in javaWriting and testing high frequency trading engines in java
Writing and testing high frequency trading engines in javaPeter Lawrey
 
Low level java programming
Low level java programmingLow level java programming
Low level java programmingPeter Lawrey
 
Responding rapidly when you have 100+ GB data sets in Java
Responding rapidly when you have 100+ GB data sets in JavaResponding rapidly when you have 100+ GB data sets in Java
Responding rapidly when you have 100+ GB data sets in JavaPeter Lawrey
 
Introduction to OpenHFT for Melbourne Java Users Group
Introduction to OpenHFT for Melbourne Java Users GroupIntroduction to OpenHFT for Melbourne Java Users Group
Introduction to OpenHFT for Melbourne Java Users GroupPeter Lawrey
 
Low latency for high throughput
Low latency for high throughputLow latency for high throughput
Low latency for high throughputPeter Lawrey
 
유연하고 확장성 있는 빅데이터 처리
유연하고 확장성 있는 빅데이터 처리유연하고 확장성 있는 빅데이터 처리
유연하고 확장성 있는 빅데이터 처리NAVER D2
 
Reactive programming with examples
Reactive programming with examplesReactive programming with examples
Reactive programming with examplesPeter Lawrey
 
ELK: Moose-ively scaling your log system
ELK: Moose-ively scaling your log systemELK: Moose-ively scaling your log system
ELK: Moose-ively scaling your log systemAvleen Vig
 
Fight with Metaspace OOM
Fight with Metaspace OOMFight with Metaspace OOM
Fight with Metaspace OOMLeon Chen
 
淺談 Java GC 原理、調教和 新發展
淺談 Java GC 原理、調教和新發展淺談 Java GC 原理、調教和新發展
淺談 Java GC 原理、調教和 新發展Leon Chen
 
Troubleshooting common oslo.messaging and RabbitMQ issues
Troubleshooting common oslo.messaging and RabbitMQ issuesTroubleshooting common oslo.messaging and RabbitMQ issues
Troubleshooting common oslo.messaging and RabbitMQ issuesMichael Klishin
 
Java and Containers - Make it Awesome !
Java and Containers - Make it Awesome !Java and Containers - Make it Awesome !
Java and Containers - Make it Awesome !Dinakar Guniguntala
 
Improved Reliable Streaming Processing: Apache Storm as example
Improved Reliable Streaming Processing: Apache Storm as exampleImproved Reliable Streaming Processing: Apache Storm as example
Improved Reliable Streaming Processing: Apache Storm as exampleDataWorks Summit/Hadoop Summit
 
Low latency microservices in java QCon New York 2016
Low latency microservices in java   QCon New York 2016Low latency microservices in java   QCon New York 2016
Low latency microservices in java QCon New York 2016Peter Lawrey
 
Kernelvm 201312-dlmopen
Kernelvm 201312-dlmopenKernelvm 201312-dlmopen
Kernelvm 201312-dlmopenHajime Tazaki
 

Tendances (20)

High Frequency Trading and NoSQL database
High Frequency Trading and NoSQL databaseHigh Frequency Trading and NoSQL database
High Frequency Trading and NoSQL database
 
Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)
Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)
Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)
 
Deterministic behaviour and performance in trading systems
Deterministic behaviour and performance in trading systemsDeterministic behaviour and performance in trading systems
Deterministic behaviour and performance in trading systems
 
Writing and testing high frequency trading engines in java
Writing and testing high frequency trading engines in javaWriting and testing high frequency trading engines in java
Writing and testing high frequency trading engines in java
 
Low level java programming
Low level java programmingLow level java programming
Low level java programming
 
Responding rapidly when you have 100+ GB data sets in Java
Responding rapidly when you have 100+ GB data sets in JavaResponding rapidly when you have 100+ GB data sets in Java
Responding rapidly when you have 100+ GB data sets in Java
 
Introduction to OpenHFT for Melbourne Java Users Group
Introduction to OpenHFT for Melbourne Java Users GroupIntroduction to OpenHFT for Melbourne Java Users Group
Introduction to OpenHFT for Melbourne Java Users Group
 
Low latency for high throughput
Low latency for high throughputLow latency for high throughput
Low latency for high throughput
 
유연하고 확장성 있는 빅데이터 처리
유연하고 확장성 있는 빅데이터 처리유연하고 확장성 있는 빅데이터 처리
유연하고 확장성 있는 빅데이터 처리
 
Reactive programming with examples
Reactive programming with examplesReactive programming with examples
Reactive programming with examples
 
ELK: Moose-ively scaling your log system
ELK: Moose-ively scaling your log systemELK: Moose-ively scaling your log system
ELK: Moose-ively scaling your log system
 
Thanos - Prometheus on Scale
Thanos - Prometheus on ScaleThanos - Prometheus on Scale
Thanos - Prometheus on Scale
 
Fight with Metaspace OOM
Fight with Metaspace OOMFight with Metaspace OOM
Fight with Metaspace OOM
 
Java GC, Off-heap workshop
Java GC, Off-heap workshopJava GC, Off-heap workshop
Java GC, Off-heap workshop
 
淺談 Java GC 原理、調教和 新發展
淺談 Java GC 原理、調教和新發展淺談 Java GC 原理、調教和新發展
淺談 Java GC 原理、調教和 新發展
 
Troubleshooting common oslo.messaging and RabbitMQ issues
Troubleshooting common oslo.messaging and RabbitMQ issuesTroubleshooting common oslo.messaging and RabbitMQ issues
Troubleshooting common oslo.messaging and RabbitMQ issues
 
Java and Containers - Make it Awesome !
Java and Containers - Make it Awesome !Java and Containers - Make it Awesome !
Java and Containers - Make it Awesome !
 
Improved Reliable Streaming Processing: Apache Storm as example
Improved Reliable Streaming Processing: Apache Storm as exampleImproved Reliable Streaming Processing: Apache Storm as example
Improved Reliable Streaming Processing: Apache Storm as example
 
Low latency microservices in java QCon New York 2016
Low latency microservices in java   QCon New York 2016Low latency microservices in java   QCon New York 2016
Low latency microservices in java QCon New York 2016
 
Kernelvm 201312-dlmopen
Kernelvm 201312-dlmopenKernelvm 201312-dlmopen
Kernelvm 201312-dlmopen
 

Similaire à Shared Memory Performance: Beyond TCP/IP with Ben Cotton, JPMorgan

OpenHFT: An Advanced Java Data Locality and IPC Transport Solution
OpenHFT: An Advanced Java Data Locality and IPC Transport SolutionOpenHFT: An Advanced Java Data Locality and IPC Transport Solution
OpenHFT: An Advanced Java Data Locality and IPC Transport SolutionBen Cotton
 
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...Vadym Kazulkin
 
H2O Design and Infrastructure with Matt Dowle
H2O Design and Infrastructure with Matt DowleH2O Design and Infrastructure with Matt Dowle
H2O Design and Infrastructure with Matt DowleSri Ambati
 
Java 7 - New Features - by Mihail Stoynov and Svetlin Nakov
Java 7 - New Features - by Mihail Stoynov and Svetlin NakovJava 7 - New Features - by Mihail Stoynov and Svetlin Nakov
Java 7 - New Features - by Mihail Stoynov and Svetlin NakovSvetlin Nakov
 
Back to the future with Java 7 (Geekout June/2011)
Back to the future with Java 7 (Geekout June/2011)Back to the future with Java 7 (Geekout June/2011)
Back to the future with Java 7 (Geekout June/2011)Martijn Verburg
 
"Highlights from Java 10&11 and Future of Java" at Java User Group Bonn 2018 ...
"Highlights from Java 10&11 and Future of Java" at Java User Group Bonn 2018 ..."Highlights from Java 10&11 and Future of Java" at Java User Group Bonn 2018 ...
"Highlights from Java 10&11 and Future of Java" at Java User Group Bonn 2018 ...Vadym Kazulkin
 
Java 7 Whats New(), Whats Next() from Oredev
Java 7 Whats New(), Whats Next() from OredevJava 7 Whats New(), Whats Next() from Oredev
Java 7 Whats New(), Whats Next() from OredevMattias Karlsson
 
Java collections the force awakens
Java collections  the force awakensJava collections  the force awakens
Java collections the force awakensRichardWarburton
 
IPT High Performance Reactive Java BGOUG 2016
IPT High Performance Reactive Java BGOUG 2016IPT High Performance Reactive Java BGOUG 2016
IPT High Performance Reactive Java BGOUG 2016Trayan Iliev
 
The features of java 11 vs. java 12
The features of  java 11 vs. java 12The features of  java 11 vs. java 12
The features of java 11 vs. java 12FarjanaAhmed3
 
LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1Hajime Tazaki
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Highlights from Java 10-13 and Future of Java at JCON 2019 by Alukhanov and K...
Highlights from Java 10-13 and Future of Java at JCON 2019 by Alukhanov and K...Highlights from Java 10-13 and Future of Java at JCON 2019 by Alukhanov and K...
Highlights from Java 10-13 and Future of Java at JCON 2019 by Alukhanov and K...Vadym Kazulkin
 

Similaire à Shared Memory Performance: Beyond TCP/IP with Ben Cotton, JPMorgan (20)

OpenHFT: An Advanced Java Data Locality and IPC Transport Solution
OpenHFT: An Advanced Java Data Locality and IPC Transport SolutionOpenHFT: An Advanced Java Data Locality and IPC Transport Solution
OpenHFT: An Advanced Java Data Locality and IPC Transport Solution
 
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
 
Java 7 & 8
Java 7 & 8Java 7 & 8
Java 7 & 8
 
H2O Design and Infrastructure with Matt Dowle
H2O Design and Infrastructure with Matt DowleH2O Design and Infrastructure with Matt Dowle
H2O Design and Infrastructure with Matt Dowle
 
Java 7 - New Features - by Mihail Stoynov and Svetlin Nakov
Java 7 - New Features - by Mihail Stoynov and Svetlin NakovJava 7 - New Features - by Mihail Stoynov and Svetlin Nakov
Java 7 - New Features - by Mihail Stoynov and Svetlin Nakov
 
Panama.pdf
Panama.pdfPanama.pdf
Panama.pdf
 
Back to the future with Java 7 (Geekout June/2011)
Back to the future with Java 7 (Geekout June/2011)Back to the future with Java 7 (Geekout June/2011)
Back to the future with Java 7 (Geekout June/2011)
 
"Highlights from Java 10&11 and Future of Java" at Java User Group Bonn 2018 ...
"Highlights from Java 10&11 and Future of Java" at Java User Group Bonn 2018 ..."Highlights from Java 10&11 and Future of Java" at Java User Group Bonn 2018 ...
"Highlights from Java 10&11 and Future of Java" at Java User Group Bonn 2018 ...
 
Java 7 Whats New(), Whats Next() from Oredev
Java 7 Whats New(), Whats Next() from OredevJava 7 Whats New(), Whats Next() from Oredev
Java 7 Whats New(), Whats Next() from Oredev
 
Java 8 Overview
Java 8 OverviewJava 8 Overview
Java 8 Overview
 
Java collections the force awakens
Java collections  the force awakensJava collections  the force awakens
Java collections the force awakens
 
Java 7 & 8 - A&BP CC
Java 7 & 8 - A&BP CCJava 7 & 8 - A&BP CC
Java 7 & 8 - A&BP CC
 
Java On Speed
Java On SpeedJava On Speed
Java On Speed
 
How can your applications benefit from Java 9?
How can your applications benefit from Java 9?How can your applications benefit from Java 9?
How can your applications benefit from Java 9?
 
IPT High Performance Reactive Java BGOUG 2016
IPT High Performance Reactive Java BGOUG 2016IPT High Performance Reactive Java BGOUG 2016
IPT High Performance Reactive Java BGOUG 2016
 
The features of java 11 vs. java 12
The features of  java 11 vs. java 12The features of  java 11 vs. java 12
The features of java 11 vs. java 12
 
LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Highlights from Java 10-13 and Future of Java at JCON 2019 by Alukhanov and K...
Highlights from Java 10-13 and Future of Java at JCON 2019 by Alukhanov and K...Highlights from Java 10-13 and Future of Java at JCON 2019 by Alukhanov and K...
Highlights from Java 10-13 and Future of Java at JCON 2019 by Alukhanov and K...
 
How can your applications benefit from Java 9?
How can your applications benefit from Java 9?How can your applications benefit from Java 9?
How can your applications benefit from Java 9?
 

Plus de Hazelcast

Hazelcast 3.6 Roadmap Preview
Hazelcast 3.6 Roadmap PreviewHazelcast 3.6 Roadmap Preview
Hazelcast 3.6 Roadmap PreviewHazelcast
 
Time to Make the Move to In-Memory Data Grids
Time to Make the Move to In-Memory Data GridsTime to Make the Move to In-Memory Data Grids
Time to Make the Move to In-Memory Data GridsHazelcast
 
The Power of the JVM: Applied Polyglot Projects with Java and JavaScript
The Power of the JVM: Applied Polyglot Projects with Java and JavaScriptThe Power of the JVM: Applied Polyglot Projects with Java and JavaScript
The Power of the JVM: Applied Polyglot Projects with Java and JavaScriptHazelcast
 
JCache - It's finally here
JCache -  It's finally hereJCache -  It's finally here
JCache - It's finally hereHazelcast
 
Speed Up Your Existing Relational Databases with Hazelcast and Speedment
Speed Up Your Existing Relational Databases with Hazelcast and SpeedmentSpeed Up Your Existing Relational Databases with Hazelcast and Speedment
Speed Up Your Existing Relational Databases with Hazelcast and SpeedmentHazelcast
 
Applying Real-time SQL Changes in your Hazelcast Data Grid
Applying Real-time SQL Changes in your Hazelcast Data GridApplying Real-time SQL Changes in your Hazelcast Data Grid
Applying Real-time SQL Changes in your Hazelcast Data GridHazelcast
 
WAN Replication: Hazelcast Enterprise Lightning Talk
WAN Replication: Hazelcast Enterprise Lightning TalkWAN Replication: Hazelcast Enterprise Lightning Talk
WAN Replication: Hazelcast Enterprise Lightning TalkHazelcast
 
JAAS Security Suite: Hazelcast Enterprise Lightning Talk
JAAS Security Suite: Hazelcast Enterprise Lightning TalkJAAS Security Suite: Hazelcast Enterprise Lightning Talk
JAAS Security Suite: Hazelcast Enterprise Lightning TalkHazelcast
 
Hazelcast for Terracotta Users
Hazelcast for Terracotta UsersHazelcast for Terracotta Users
Hazelcast for Terracotta UsersHazelcast
 
Extreme Network Performance with Hazelcast on Torusware
Extreme Network Performance with Hazelcast on ToruswareExtreme Network Performance with Hazelcast on Torusware
Extreme Network Performance with Hazelcast on ToruswareHazelcast
 
Big Data, Simple and Fast: Addressing the Shortcomings of Hadoop
Big Data, Simple and Fast: Addressing the Shortcomings of HadoopBig Data, Simple and Fast: Addressing the Shortcomings of Hadoop
Big Data, Simple and Fast: Addressing the Shortcomings of HadoopHazelcast
 
JAXLondon - Squeezing Performance of IMDGs
JAXLondon - Squeezing Performance of IMDGsJAXLondon - Squeezing Performance of IMDGs
JAXLondon - Squeezing Performance of IMDGsHazelcast
 
OrientDB & Hazelcast: In-Memory Distributed Graph Database
 OrientDB & Hazelcast: In-Memory Distributed Graph Database OrientDB & Hazelcast: In-Memory Distributed Graph Database
OrientDB & Hazelcast: In-Memory Distributed Graph DatabaseHazelcast
 
How to Use HazelcastMQ for Flexible Messaging and More
 How to Use HazelcastMQ for Flexible Messaging and More How to Use HazelcastMQ for Flexible Messaging and More
How to Use HazelcastMQ for Flexible Messaging and MoreHazelcast
 
Devoxx UK 2014 High Performance In-Memory Java with Open Source
Devoxx UK 2014   High Performance In-Memory Java with Open SourceDevoxx UK 2014   High Performance In-Memory Java with Open Source
Devoxx UK 2014 High Performance In-Memory Java with Open SourceHazelcast
 
JSR107 State of the Union JavaOne 2013
JSR107  State of the Union JavaOne 2013JSR107  State of the Union JavaOne 2013
JSR107 State of the Union JavaOne 2013Hazelcast
 
Jfokus - Hazlecast
Jfokus - HazlecastJfokus - Hazlecast
Jfokus - HazlecastHazelcast
 
In-memory No SQL- GIDS2014
In-memory No SQL- GIDS2014In-memory No SQL- GIDS2014
In-memory No SQL- GIDS2014Hazelcast
 
In-memory Data Management Trends & Techniques
In-memory Data Management Trends & TechniquesIn-memory Data Management Trends & Techniques
In-memory Data Management Trends & TechniquesHazelcast
 
How to Speed up your Database
How to Speed up your DatabaseHow to Speed up your Database
How to Speed up your DatabaseHazelcast
 

Plus de Hazelcast (20)

Hazelcast 3.6 Roadmap Preview
Hazelcast 3.6 Roadmap PreviewHazelcast 3.6 Roadmap Preview
Hazelcast 3.6 Roadmap Preview
 
Time to Make the Move to In-Memory Data Grids
Time to Make the Move to In-Memory Data GridsTime to Make the Move to In-Memory Data Grids
Time to Make the Move to In-Memory Data Grids
 
The Power of the JVM: Applied Polyglot Projects with Java and JavaScript
The Power of the JVM: Applied Polyglot Projects with Java and JavaScriptThe Power of the JVM: Applied Polyglot Projects with Java and JavaScript
The Power of the JVM: Applied Polyglot Projects with Java and JavaScript
 
JCache - It's finally here
JCache -  It's finally hereJCache -  It's finally here
JCache - It's finally here
 
Speed Up Your Existing Relational Databases with Hazelcast and Speedment
Speed Up Your Existing Relational Databases with Hazelcast and SpeedmentSpeed Up Your Existing Relational Databases with Hazelcast and Speedment
Speed Up Your Existing Relational Databases with Hazelcast and Speedment
 
Applying Real-time SQL Changes in your Hazelcast Data Grid
Applying Real-time SQL Changes in your Hazelcast Data GridApplying Real-time SQL Changes in your Hazelcast Data Grid
Applying Real-time SQL Changes in your Hazelcast Data Grid
 
WAN Replication: Hazelcast Enterprise Lightning Talk
WAN Replication: Hazelcast Enterprise Lightning TalkWAN Replication: Hazelcast Enterprise Lightning Talk
WAN Replication: Hazelcast Enterprise Lightning Talk
 
JAAS Security Suite: Hazelcast Enterprise Lightning Talk
JAAS Security Suite: Hazelcast Enterprise Lightning TalkJAAS Security Suite: Hazelcast Enterprise Lightning Talk
JAAS Security Suite: Hazelcast Enterprise Lightning Talk
 
Hazelcast for Terracotta Users
Hazelcast for Terracotta UsersHazelcast for Terracotta Users
Hazelcast for Terracotta Users
 
Extreme Network Performance with Hazelcast on Torusware
Extreme Network Performance with Hazelcast on ToruswareExtreme Network Performance with Hazelcast on Torusware
Extreme Network Performance with Hazelcast on Torusware
 
Big Data, Simple and Fast: Addressing the Shortcomings of Hadoop
Big Data, Simple and Fast: Addressing the Shortcomings of HadoopBig Data, Simple and Fast: Addressing the Shortcomings of Hadoop
Big Data, Simple and Fast: Addressing the Shortcomings of Hadoop
 
JAXLondon - Squeezing Performance of IMDGs
JAXLondon - Squeezing Performance of IMDGsJAXLondon - Squeezing Performance of IMDGs
JAXLondon - Squeezing Performance of IMDGs
 
OrientDB & Hazelcast: In-Memory Distributed Graph Database
 OrientDB & Hazelcast: In-Memory Distributed Graph Database OrientDB & Hazelcast: In-Memory Distributed Graph Database
OrientDB & Hazelcast: In-Memory Distributed Graph Database
 
How to Use HazelcastMQ for Flexible Messaging and More
 How to Use HazelcastMQ for Flexible Messaging and More How to Use HazelcastMQ for Flexible Messaging and More
How to Use HazelcastMQ for Flexible Messaging and More
 
Devoxx UK 2014 High Performance In-Memory Java with Open Source
Devoxx UK 2014   High Performance In-Memory Java with Open SourceDevoxx UK 2014   High Performance In-Memory Java with Open Source
Devoxx UK 2014 High Performance In-Memory Java with Open Source
 
JSR107 State of the Union JavaOne 2013
JSR107  State of the Union JavaOne 2013JSR107  State of the Union JavaOne 2013
JSR107 State of the Union JavaOne 2013
 
Jfokus - Hazlecast
Jfokus - HazlecastJfokus - Hazlecast
Jfokus - Hazlecast
 
In-memory No SQL- GIDS2014
In-memory No SQL- GIDS2014In-memory No SQL- GIDS2014
In-memory No SQL- GIDS2014
 
In-memory Data Management Trends & Techniques
In-memory Data Management Trends & TechniquesIn-memory Data Management Trends & Techniques
In-memory Data Management Trends & Techniques
 
How to Speed up your Database
How to Speed up your DatabaseHow to Speed up your Database
How to Speed up your Database
 

Dernier

A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 

Dernier (20)

A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 

Shared Memory Performance: Beyond TCP/IP with Ben Cotton, JPMorgan

  • 1. Advanced Java Data Locality and Data IPC Transport Solutions: An Introduction to OpenHFT ben.cotton@jpmorgan.com ben.cotton@alumni.rutgers.edu Jan 27, 2015
  • 2. For real-time Java deployments (with the strictest SLAs) the problem of JVM “Stop the World” GC activity (on medium-lived on- Heap objects) is a MONSTROUS problem. 2
  • 3. Simple Remedy? Design Java developments and deployments so that medium-lived Collections (e.g. that “old dog” HashMap) object instance(s) are taught a “new trick” …. That “new trick” is simple: take HashMap completely Off-Heap. The  Heap   Good  Boy!     Off-­‐Heap   you  go  …   3
  • 4. But What kind of HashMap are we putting Off-Heap? •  java.util.HashMap ? •  Collections.synchronizedMap( java.util.HashMap ); ? •  java.util.concurrent.ConcurrentHashMap ? •  something entirely different ? ANSWER: something very different (indeed)! •  OpenHFT’s Chronicle Map SOLUTION •  net.openhft.chronicle.map.ChronicleMap 4
  • 5. What exactly is OpenHFT? •  100% Open Source •  Designed to empower Higher Frequency Trading (HFT) •  https://github.com/OpenHFT (developer source repo) •  http://www.openhft.net (Products. Services. Training) •  Provides modules that empower ultra low latency Java deployments to achieve REAL-TIME compliance (with even their strictest of SLAs) •  Java-Lang (Marshalling / GC Free De-Marshalling / Thread-SAFE / IPC-SAFE / Off-Heap/ 64-bit ByteBuffers) •  Chronicle-Queue (persisted low-latency Queue messaging and Logging) •  Chroncile-Map (ChronicleMap, Thread-SAFE/IPC-SAFE/Off-Heap) •  Chronicle-Engine Fast Data Framework. •  Java-Runtime-Compiler (builds OpenHFT native impl classes – in process – of user supplied JBI interfaces) •  Java-Thread-Affinity (allows JVM Threads to be pinned by affinity to specific OS cpus) •  TransFIX (ultra low latency FIX engine) 5
  • 6. What really is OpenHFT? OpenHFT is a 100% OSS solution that empowers Java developers to deliver the highest performing and most flexible •  Data Locality (Optimised memory layout) And •  Data IPC Transport (waaay faster than UDP/ TCP) Capabilities. 6
  • 7. PART 1 OpenHFT as an Advanced Java Data Locality Provider (That’s right folks! We’re going Off-Heap) 7
  • 10. 10
  • 11. 11
  • 12. Java Heap Layout: Through the Generations View 12
  • 13. OpenHFT: Off-Heap ChronicleMap … an Architectural View 13
  • 14. OpenHFT : Step #1 (PID 1) 14
  • 15. OpenHFT : Step #2 (PID 1) – thread safe write to off heap 15
  • 16. OpenHFT : Step #3 (PID 1) 16
  • 17. OpenHFT : Step #4 (PID 2) – thread safe read (concurrent) 17
  • 18. OpenHFT : Step #5 (PID 2) update an existing entry (thread safe) 18
  • 19. OpenHFT : Step #6 (PID 2) 19
  • 20. OpenHFT : Step #6 (PID 2) S OpenHFT code sample demo Summary: -  MT-SAFE operations -  IPC-SAFE operations -  IPC-ATOMIC operations -  ZERO-COPY (*) -  GC-Free Marshalling/De-Marshalling -  Ambition to provide the symmetry of java.util.concurrent.* API support across native Linux processes (not just Threads!) -  Nanosecond transport latency (stay tuned for details) * (note on Map<K,V > type domain support status). 20
  • 21. Performance Results: CHM vs. SHM On Linux 14.04, dual E5-2650 v2 @ 2.60GHz, 128 GB memory, each entry updated 32 times. ConcurrentHashMap -Xmx110g -Xms110g -verbose:gc 21
  • 22. Performance Results: CHM vs. SHM On Linux 14.04, dual E5-2650 v2 @ 2.60GHz, 128 GB memory, each entry updated 32 times. 22
  • 23. OpenHFT as an Off-Heap JCACHE Provider (e.g. RedHat JDG Infinispan) 23
  • 24. OpenHFT empowers developers to use OpenJDK and Native Linux OS to 100% protect their medium-lived Java Collections (ChronicleMap) from being impacted by STW GC pauses. 24
  • 25. PART 2 OpenHFT as an Advanced Java IPC Transport Provider (That’s right folks! UDP/TCP now joined by native Linux /dev/shm IPC) 25
  • 26. OSI Model of Networking Layers: 26
  • 27. Java 7 Sockets Direct Protocol: Delivering SDP/IB as a Transport 27
  • 28. Java 7 Sockets Direct Protocol: Delivering to Java its first RDMA capability 28
  • 29. Intel iWARP: potential to empower Java 9 with SDP/10gE as a Transport With SDP/10gE Java 9 will be able to deliver RDMA to the Java Ethernet masses! 29
  • 30. OpenHFT as a /dev/shm IPC Transport Provider: peter.lawrey@higherfrequencytrading.com “I  want  to  be  disrup=ve  rather  than   rehash  or  just  slightly  improve  exis=ng   products.”                          08/14/2014        Ah,  the  glory!   30
  • 31. OpenHFT as a /dev/shm IPC Transport Provider: ZERO COPY capability Advanced BytesMarshallable impl of Externalizable – for CBV Copy tolerant parts of Liquidity Risk AE. ZERO GC CAPACITY LIMITED ONLY BY PHYSICAL RAM CONSISTENTLY 438% Faster than On JVM Heap Cache<K,V> like operands JPM Tests show= Mean 350 nano-second /dev/shm latency (ZC Entry<K,V> transport, RDR_DIM Mock) DOES NOT SUPPORT FULLY-TRANSITIVE GENERIC V=Object Graph as Cache<K,V> Operand. Currently {String, primitive} for ZC. NO immediate Plug-N-Play w/ RDR_DIM Operands used by Liquidity Risk AE NOT YET ADAPTED w/in RedHat JDG as JSR-107 compliant Cache<K,V> Operand. 31
  • 32. PROOF IS IN THE TEST RESULTS: What do we get using OpenHFT vs. RedHat JDG? OpenHFT /dev/shm/SharedHashMap<K,V> as operand provider: To try , run the following command in 2 separated terminals ( (rm /dev/shm/*) Left player must be started first!): java org.junit.runner.JUnitCore net.openhft.collections.fromdocs.com.jpmorgan.pingpong_latency.PingPongPlayerLeft java org.junit.runner.JUnitCore net.openhft.collections.fromdocs.com.jpmorgan.pingpong_latency.PingPongPlayerRight 32424: 1 x _bondEntryV.getCoupon() (last _couponL=[5.00 %]) in 37.0 nanos 32425: 1 x _bondEntryV.getCoupon() (last _couponL=[5.00 %]) in 37.5 nanos 32423: 1 x _bondEntryV.getCoupon() (last _couponR=[4.00 %]) in 37.0 nanos 32424: 1 x _bondEntryV.getCoupon() (last _couponR=[4.00 %]) in 31.0 nanos Full results at https://github.com/Cotton-Ben/HugeCollections/tree/master/collections/src/ test/java/net/openhft/collections/fromdocs/com/jpmorgan/pingpong_latency 32
  • 34. PROOF IS IN THE TEST RESULTS: What do we get using OpenHFT vs. RedHat JDG? RedHat JDG and JCACHE<K,V> as operand provider: To try with a distributed cache, run the following command in separated terminals: java -cp "target/classes:target/dependency/*“ org.infinispan.quickstart.clusteredcache.Node -d LEFT java -cp "target/classes:target/dependency/*“ org.infinispan.quickstart.clusteredcache.Node -d RIGHT counter=[217924] cache.put('369604103',3.000%); took 92,599 nanos counter=[217925] cache.put('369604103',6.000%); took 90,062 nanos counter=[42529] fl=[5%] = cache.get('369604103'); took 52,624 nanos counter=[42530] fl=[6%] = cache.get('369604103'); took 47,981 nanos ( full results at https://github.com/Cotton-Ben/infinispan-quickstart/tree/master/clustered- cache ) 34
  • 35. RedHat JDG and JCACHE<K,V> as operand provider (1,000x slower) 35
  • 36. Bottom Line = Tests by Real-Time Liquidity Risk Technology AggEng team imperically demonstrate that OpenHFT off-heap over /dev/shm IPC transport is 1,000x faster than RedHat JDG on-heap over UDP OSI-Loopback IPC transport. IMMEDIATE NEXT STEPS: NO DOUBT ABOUT IT = We need the OpenHFT off heap capability made available to us via the RedHat JDG product and its JCACHE API! Explicit commits from Mircea re: adapting Peter’s OpenHFT SHM as RedHat JDG interoperable JSR-107 Cache<K,V>. RedHat customer support case? Explicit commits from Bela re: “short circuiting” all node ßà node transport resolution to use /dev/shm IPC as transport (instead of TCP/UDP) whenever possible … RedHat customer support case? Explicit commits from Peter re: supporting above with OpenHFT as the Off-Heap provider. JPM retain OpenHFT via support subscription? Continued commits/time planning re: Ben, Dmitry, Xiao efforts to maintained Fork’d repo and build sound/complete/confirming tests. 36
  • 37. THE END Note: For all things re OpenHFT Please contact: Peter.Lawrey@higherfrequencytrading.com www.openhft.net Peter.Lawrey@higherfrequencytrading.com www.openhft.net 37