enabling java applications for low-latency use cases at ... a… · enabling java applications for...

60
Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder Azul Systems Denis Magda VP, Product Management GridGain Systems

Upload: others

Post on 25-Jun-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain

Gil TeneCTO & Co-Founder

Azul Systems

Denis MagdaVP, Product Management

GridGain Systems

Page 2: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

2

10 Mins That Saved Southwest Airlines

Page 3: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

3

Apps That Require Much Lower Latency

Payments Processing

Latency: 20 - 200 ms

Electronic Trading

Latency: 20 - 100s μs

Page 4: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

4

Garbage Collection Might Make Things Unpredictable

Page 5: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

5

Unless You Select The Right Java Stack

Page 6: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

Azul Zing - Java without the pauses

Click to add text

Page 7: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

©2017 Azul Systems, Inc.

An overview of Zing

Gil Tene, CTO & co-Founder, Azul Systems

Page 8: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

©2017 Azul Systems, Inc.

This is <Your App> on HotSpot

This is <Your App> on Zing

Any Questions?

A simple visual summary

Page 9: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

©2015 Azul Systems, Inc.

A JVM for Linux/x86 (servers, clouds, containers)

“Not just Fast. Always Fast.”

Improves application behavior metrics

Increases practical carrying capacity

Makes developers and their managers happier

Delivers a continuously responsive execution platform

ELIMINATES Garbage Collection as a concern

Reduces negative impacts of frequent code deployment

VERY wide operating range

from GBs to TBs, from low latency to streaming and batch

Zing

Page 10: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

©2017 Azul Systems, Inc.

Areas where Zing shines

Wherever speed & responsiveness matter:

Human response times…

Machine-to-machine “stuff”…

“Low latency” or “Latency Sensitive"…

“Large” data and in-memory analytics…

Page 11: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

©2017 Azul Systems, Inc.

Zing shines in Java based infrastructure…

CassandraSolr

Elastic

LuceneKafka

HBase ZookeeperFlink

Pinot

Aeron

Spark

……

GridGainIgnite

HDFS

Storm

Page 12: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

©2017 Azul Systems, Inc.

Zing shines in Java applications

API Gateways Applicationcontainers

Back end

Front End

In memoryanalytics

Streamingapplications

……

… …

Page 13: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

©2017 Azul Systems, Inc.

Zing’s main feature areas

C4: GC, solved.

Falcon: Powerful JIT compiler. Speed.

ReadyNow: Warmup/Startup. DevOps.

Page 14: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

Speed

What is it good for?

Page 15: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

©2017 Azul Systems, Inc.

Are you fast?

Page 16: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

©2017 Azul Systems, Inc.

Are you fast when new code rolls out?

Page 17: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

©2017 Azul Systems, Inc.

Are you fast when it matters?

Page 18: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

©2017 Azul Systems, Inc.

Are you fast at Market Open?

Page 19: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

©2017 Azul Systems, Inc.

Are you reliably fast?

Page 20: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

©2017 Azul Systems, Inc.

??

What does being “fast” mean?

Page 21: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

©2017 Azul Systems, Inc.

What does being “fast” mean?

Page 22: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

Speed in the Java world…

Page 23: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

©2017 Azul Systems, Inc.

Interpreted

Tier 1(profiling) Optimized

Page 24: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

©2017 Azul Systems, Inc.

Page 25: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

©2017 Azul Systems, Inc.

Page 26: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

©2017 Azul Systems, Inc.

Falcon

Falcon is basically about speed

Page 27: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

©2017 Azul Systems, Inc.

FalconReadyNow

ReadyNow is focused on warmup

Page 28: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

©2017 Azul Systems, Inc.

FalconReadyNow

C4

C4 takes out the stalls

Page 29: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

©2017 Azul Systems, Inc.

FalconReadyNow

C4

Start Fast, Go Fast, Stay Fast

Page 30: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

©2015 Azul Systems, Inc.

GC Tuning

Page 31: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

©2015 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 …

Page 32: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

A few more GC tuning flags

Source: Word Cloud created by Frank Pavageau in his Devoxx FR 2012 presentation titled “Death by Pauses”

Page 33: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

©2015 Azul Systems, Inc.

The complete guide tomodern GC tuning**

java -Xmx40gjava -Xmx20gjava -Xmx10g

java -Xmx5g

** It’s 2019, Zing is widely available. Tweaking 10s of GC flags is a thing of the past.

Page 34: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

©2017 Azul Systems, Inc.

Cassandra under heavy load, Intel E5-2690 v4 server

Yup, that’s the 1 msec mark

Page 35: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

A real world use case with In Memory Computing:

GridGain in a Credit Card payments processing application

Page 36: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

36

Payments Benchmark: Configuration

! 3 nodes GridGain cluster○ 3 x AWS i3en.6xlarge○ 72 cores○ 600 GB RAM and 45 TB disk

! Tested Scenarios○ Azul Zing C4 vs. OpenJDK G1 for○ 100% in RAM, no disk (200 GB)○ 100% in RAM, 100% on disk (200 GB)○ 30% in RAM, 100% on disk (600 GB)

Page 37: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

37

Payments Benchmark: Workload

! Each transactions accesses 20 records! Distributed Transactional Reads

○ Target throughput - 1000 reads/sec○ Target latency - 15ms for 99.99th percentile

! Distributed Transactional Updates○ Target throughput - 2000 updates/sec○ Target latency - 50ms for 99.99th percentile○ RAM and disk have to be updated for primary and backup copies

! Metrics Collection ○ Micrometer and jHiccup○ 2 hours run

Page 38: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

38

Transactional Reads100% in RAM (200 GB)

Page 39: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

39

Transactional Reads100% in RAM (200 GB) [equalized scale]

Page 40: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

40

- target latency

Transactional Reads100% in RAM (200 GB) [equalized scale]

Page 41: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

41

Transactional Updates:100% in RAM (200 GB)

Page 42: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

42

Transactional Updates100% in RAM (200 GB) [equalized scale]

Page 43: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

43

- target latency

Transactional Updates100% in RAM (200 GB) [equalized scale]

Page 44: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

44

Transactional Reads With Persistence100% in RAM, 100% on Disk (200 GB)

Page 45: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

45

Transactional Reads With Persistence100% in RAM, 100% on Disk (200 GB) [equalized scale]

Page 46: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

46

- target latency

Transactional Reads With Persistence100% in RAM, 100% on Disk (200 GB) [equalized scale]

Page 47: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

47

Transactional Updates With Persistence100% in RAM, 100% on Disk (200 GB)

Page 48: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

48

Transactional Updates With Persistence100% in RAM, 100% on Disk (200 GB) [equalized scale]

Page 49: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

49

- target latency

Transactional Updates With Persistence100% in RAM, 100% on Disk (200 GB) [equalized scale]

Page 50: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

GridGain - In-Memory Computing Platform That Scales

Click to add text

Page 51: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

51

GridGain Let’s Us Scale To TerabytesAcross RAM and Disk Space

Unlimited off-heap memoryand disk space for data

Java Heap for objects generated in runtime

Page 52: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

52

Transactional Persistence

! Distributed Persistence Tier○ Fully transactional and consistent○ No need to cache 100% of data in RAM○ No need to warm-up RAM on restarts

! Performance vs. Cost Tradeoff○ Cache more for fastest performance○ Cache less to reduce infrastructure costs

Page 53: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

53

Transactional Reads with Persistence30% in RAM, 100% on Disk (600 GB)

Page 54: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

54

Transactional Reads with Persistence30% in RAM, 100% on Disk (600 GB) [equalized scale]

Page 55: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

55

- target latency

Transactional Reads with Persistence30% in RAM, 100% on Disk (600 GB) [equalized scale]

Page 56: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

56

Transactional Updates with Persistence30% in RAM, 100% on Disk (600 GB)

Page 57: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

57

Transactional Updates with Persistence30% in RAM, 100% on Disk (600 GB) [equalized scale]

Page 58: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

58

- target latency

Transactional Updates with Persistence30% in RAM, 100% on Disk (600 GB) [equalized scale]

Page 59: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

59

Is Java Ready for Low-Latency Scenarios?

! Eliminate GC pauses with Azul Zing

! Scale Out with GridGain across RAM and Disk

! Select a configuration you need to meet infrastructure costs

Page 60: Enabling Java applications for low-latency use cases at ... a… · Enabling Java applications for low-latency use cases at scale with Azul Zing and GridGain Gil Tene CTO & Co-Founder

60

Q&A

Gil - @giltene

Denis - @denimagda