TRASH DAY: COORDINATING GARBAGE COLLECTION IN DISTRIBUTED SYSTEMS

Similar documents
JVM Performance Study Comparing Oracle HotSpot and Azul Zing Using Apache Cassandra

JVM Memory Model and GC

OS-caused Long JVM Pauses - Deep Dive and Solutions

Java Without the Jitter

Runtime Application Self-Protection (RASP) Performance Metrics

Real Time: Understanding the Trade-offs Between Determinism and Throughput

CGAR: Strong Consistency without Synchronous Replication. Seo Jin Park Advised by: John Ousterhout

NG2C: Pretenuring Garbage Collection with Dynamic Generations for HotSpot Big Data Applications

Exploiting the Behavior of Generational Garbage Collector

Workload Characterization and Optimization of TPC-H Queries on Apache Spark

The Z Garbage Collector An Introduction

The C4 Collector. Or: the Application memory wall will remain until compaction is solved. Gil Tene Balaji Iyengar Michael Wolf

The Z Garbage Collector Low Latency GC for OpenJDK

@joerg_schad Nightmares of a Container Orchestration System

JVM Performance Study Comparing Java HotSpot to Azul Zing Using Red Hat JBoss Data Grid

A HIGH-PERFORMANCE OBLIVIOUS RAM CONTROLLER ON THE CONVEY HC-2EX HETEROGENEOUS COMPUTING PLATFORM

Understanding Application Hiccups

A RISC-V JAVA UPDATE

Understanding Latency and Response Time Behavior

JDK 9/10/11 and Garbage Collection

NPTEL Course Jan K. Gopinath Indian Institute of Science

Pause-Less GC for Improving Java Responsiveness. Charlie Gracie IBM Senior Software charliegracie

Cassandra - A Decentralized Structured Storage System. Avinash Lakshman and Prashant Malik Facebook

Migrating Oracle Databases To Cassandra

Java On Steroids: Sun s High-Performance Java Implementation. History

Scaling Up Performance Benchmarking

Low Latency Java in the Real World

Thread-Aware Garbage Collection for Server Applications

How NOT to Measure Latency

Building High Performance Apps using NoSQL. Swami Sivasubramanian General Manager, AWS NoSQL

Java Performance Tuning and Optimization Student Guide

April 21, 2017 Revision GridDB Reliability and Robustness

How NOT to Measure Latency

Two-Choice Randomized Dynamic I/O Scheduler for Object Storage Systems. Dong Dai, Yong Chen, Dries Kimpe, and Robert Ross

NoSQL Databases MongoDB vs Cassandra. Kenny Huynh, Andre Chik, Kevin Vu

<Insert Picture Here> Oracle NoSQL Database A Distributed Key-Value Store

VOLTDB + HP VERTICA. page

10. Replication. Motivation

Garbage Collection. Hwansoo Han

FlashBlox: Achieving Both Performance Isolation and Uniform Lifetime for Virtualized SSDs

Exploiting Commutativity For Practical Fast Replication. Seo Jin Park and John Ousterhout

Understanding the latent value in all content

Dynamic Vertical Memory Scalability for OpenJDK Cloud Applications

Fundamentals of GC Tuning. Charlie Hunt JVM & Performance Junkie

JamaicaVM Java for Embedded Realtime Systems

VIProf: A Vertically Integrated Full-System Profiler

How Not to Measure Latency

Advanced Database Systems

How to keep capacity predictions on target and cut CPU usage by 5x

Distributed ETL. A lightweight, pluggable, and scalable ingestion service for real-time data. Joe Wang

CLUSTERING HIVEMQ. Building highly available, horizontally scalable MQTT Broker Clusters

The Z Garbage Collector Scalable Low-Latency GC in JDK 11

ONOS: TOWARDS AN OPEN, DISTRIBUTED SDN OS. Chun Yuan Cheng

Network Requirements for Resource Disaggregation

JVM and application bottlenecks troubleshooting

Jaguar: Enabling Efficient Communication and I/O in Java

JAVA PERFORMANCE. PR SW2 S18 Dr. Prähofer DI Leopoldseder

ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective

The Google File System

A JVM Does What? Eva Andreasson Product Manager, Azul Systems

Optimising Multicore JVMs. Khaled Alnowaiser

LANGUAGE RUNTIME NON-VOLATILE RAM AWARE SWAPPING

Typical Issues with Middleware

DEMYSTIFYING BIG DATA WITH RIAK USE CASES. Martin Schneider Basho Technologies!

Distributed Systems 16. Distributed File Systems II

Application Management Webinar. Daniela Field

Yak: A High-Performance Big-Data-Friendly Garbage Collector. Khanh Nguyen, Lu Fang, Guoqing Xu, Brian Demsky, Sanazsadat Alamian Shan Lu

(incubating) Introduction. Swapnil Bawaskar.

Transform your data estate with cloud, data and AI

Getafix: Workload-aware Distributed Interactive Analytics

The Garbage-First Garbage Collector

Google File System. Arun Sundaram Operating Systems

Limits of Parallel Marking Garbage Collection....how parallel can a GC become?

Fiji VM Safety Critical Java

Enabling Java in Latency Sensitive Environments

Java & Coherence Simon Cook - Sales Consultant, FMW for Financial Services

Apache Spark is a fast and general-purpose engine for large-scale data processing Spark aims at achieving the following goals in the Big data context

MapR Enterprise Hadoop

JVM Troubleshooting MOOC: Troubleshooting Memory Issues in Java Applications

MDHIM: A Parallel Key/Value Store Framework for HPC

SEDA: An Architecture for Well-Conditioned, Scalable Internet Services

TAPIR. By Irene Zhang, Naveen Sharma, Adriana Szekeres, Arvind Krishnamurthy, and Dan Ports Presented by Todd Charlton

GFS: The Google File System. Dr. Yingwu Zhu

DON T CRY OVER SPILLED RECORDS Memory elasticity of data-parallel applications and its application to cluster scheduling

Java Performance Tuning

Janus. Consolidating Concurrency Control and Consensus for Commits under Conflicts. Shuai Mu, Lamont Nelson, Wyatt Lloyd, Jinyang Li

Building Consistent Transactions with Inconsistent Replication

DataStax Enterprise 4.0 In-Memory Option A look at performance, use cases, and anti-patterns. White Paper

Shenandoah: An ultra-low pause time garbage collector for OpenJDK. Christine Flood Roman Kennke Principal Software Engineers Red Hat

Real-Time Garbage Collection Panel JTRES 2007

TECHNOLOGY WHITE PAPER. Java for the Real Time Business

Towards High Performance Processing in Modern Java-based Control Systems. Marek Misiowiec Wojciech Buczak, Mark Buttner CERN ICalepcs 2011

MySQL HA Solutions Selecting the best approach to protect access to your data

Oracle IaaS, a modern felhő infrastruktúra

MicroFuge: A Middleware Approach to Providing Performance Isolation in Cloud Storage Systems

A memcached implementation in Java. Bela Ban JBoss 2340

There Is More Consensus in Egalitarian Parliaments

Enabling Java-based VoIP backend platforms through JVM performance tuning

A JAVA VIRTUAL MACHINE FOR RISC-V PORTING THE JIKES RESEARCH VM

Concurrent Garbage Collection

Transcription:

TRASH DAY: COORDINATING GARBAGE COLLECTION IN DISTRIBUTED SYSTEMS Martin Maas* Tim Harris KrsteAsanovic* John Kubiatowicz* *University of California, Berkeley Oracle Labs, Cambridge

Why you should care TRASH DAY: COORDINATING GARBAGE about GARBAGE COLLECTION IN DISTRIBUTED SYSTEMS COLLECTION Martin Maas* Tim Harris KrsteAsanovic* in John Data Kubiatowicz* *University of California, Berkeley Oracle Labs, Cambridge Center Applications

Most Popular Languages 2015 5 out of the top 6 languages popular in 2015 use Garbage Collection (GC) 3

Popular Frameworks using GC 4

GC used by Cloud Companies 5

Why Managed Languages? [Targeting* Dynamic*Compilation*for* Embedded*Environments,* Michael*Chen*and*Kunle Olukotun,*JVM 02] Productivity Gains Avoiding Bugs Enable Certain Optimizations 6

What is the Cost of GC? GC overhead workload and heap-size dependent, 5-20% on single machine In Distributed Applications, additional overheads emerge. Applications run a- cross independent runtime systems: Node #1 Node #2 Node #3 Node #4 ISCA 12: Cao et al. 7

Two Example Workloads Throughput-oriented Batch-style Latency-sensitive Interactive 8

9

Spark Running PageRank 8-node cluster PageRank on 56 GB Wikipedia web graph 10

Spark Running PageRank 8-node cluster Execution is divided into supersteps 11

Spark Running PageRank 8-node cluster Execution is divided into supersteps Each superstep runs independent tasks 12

Spark Running PageRank Red Synchronization at end of superstep 13

Spark Running PageRank Red Synchronization at end of superstep Green Major GC Pause GC prevents superstep from completing 14

Spark Running PageRank Different node Execution stalls due to GC on other node 15

Impact on Superstep Times Nodes perform GC in different supersteps White = No GC during superstep Dark = One or more GCs (the darker the more GCs) 16

Idea: Coordinate GC on different nodes Trigger collection on all nodes at the when any one reaches a threshold Policy: Stop-the-world Everywhere, STWE 17

Memory Occupancy over Time Without STWE With STWE 18

Impact of STWE Policy Nodes perform GC in same supersteps Before Overall improvement in execution time (~15%) 19

20

Cassandra with YCSB 4-node Cassandra Cluster 3-way replicated YCSB Workload Generator Requests sent to arbitrary node; becomes coordinator and contacts replicas to assemble quorum. 21

Query Latencies over Time Blue mean latency over a 10ms window Grey Bars minor GC on any node in the cluster 22

Query Latencies over Time Blue mean latency over a 10ms window Grey Bars minor GC on any node in the cluster 23

Sources of Stragglers 1. Coordinator incurs GC during request 2.Node required a quorum incurs GC 3.Non-GC reasons (e.g., anti-entropy) 24

Sources of Stragglers 1. Coordinator incurs GC during request 2.Node required a quorum incurs GC 3.Non-GC reasons (e.g., anti-entropy) 25

GC-aware Work Distribution Steer client requests to Cassandra nodes, avoiding ones that will need a minor collection soon Policy: Request Steering, STEER 26

Steering Cassandra Requests Monitor memory on all nodes YCSB Workload Generator If one node is close to GC, send to other nodes instead 27

Steering Cassandra Requests Monitor memory on all nodes YCSB Workload Generator >80% full If one node is close to GC, send to other nodes instead 28

Steering Cassandra Requests Monitor memory on all nodes YCSB Workload Generator >80% full If one node is close to GC, send to other nodes instead 29

Impact of Request Steering Reads Updates Blue without steering Red with steering 99.9 percentile: 3.3 ms -> 1.6 ms Worst case: 83 ms -> 19 ms 30

Are These Problems Common? SOSP 01, Welsh et al. GC problems affect a large number of applications Have existed since dawn of warehouse-scale computing Current surge of interest in both industry and academia (6 new papers in last 4 mo.) 31

Common Solutions Lose language advantages, lack of generality Rewrite in C/C++ Use non-idiomatic language constructs Substantial effort to adopt Performance overheads, still have pauses Rewrite at lower level Respond to GC Pauses Concurrent Collectors 32

Common Solutions No general, widely Lose language advantages Rewrite in C/C++ Use non-idiomatic language constructs Substantial effort to adopt Performance Overheads adopted solution! Rewrite at lower level Respond to GC Pauses Concurrent collectors 33

The problem is not GC, it is language runtime system coordination 34

Current Approach Language Systems are completely independent (not just GC) Cluster Scheduler App #1 App #2 App #3 App #4 Commodity OS Commodity OS 35

Current Approach Language Systems are completely independent (not just GC) Cluster Scheduler App #1 App #2 App #3 App #4 Intra-node Interference Commodity OS Commodity OS 36

Current Approach Language Systems are completely independent (not just GC) Cluster Scheduler App #1 App #2 App #3 App #4 Intra-node Lack of Interference Commodity OS Commodity OS Coordination 37

Current Approach Language Systems are completely independent (not just GC) Cluster Scheduler Redundancy Intra-node App #1 App #2 App #3 JIT App #4 JIT Lack of Interference Commodity OS Commodity OS Coordination 38

Current Approach Language Systems are completely independent (not just GC) Elasticity Cluster Scheduler Redundancy App App App App #3 App #4 Intra-node RT RT RT Lack of Interference Commodity OS Commodity OS Coordination 39

Holistic Systems Apply the Distributed OS Ideas to design a Distributed Language System Cluster Scheduler App #1 App #2 App #3 App #4 40

Holistic Systems Apply the Distributed OS Ideas to design a Distributed Language System Cluster Scheduler App #1 App #2 App #3 App #4 Distributed Holistic System 41

Our Prototype Coordinated runtime decisions using a feedback loop with dist. consensus Configured by Policy (written in DSL) Drop-in replacement for Java VM No modifying of application required 42

System Design Application Node 0 Application Node 1 State State Holistic System Memory- Occupancy, State Monitor User-supplied Policy Plan, Reconfiguration, State updates Monitor Hotspot JVM Hotspot JVM 43

Why This Approach? Easy to adopt (just pick policy, almost no configuration required) Minimally invasive to runtime system Expressive (can express a large range of GC coordination policies) 44

Our plan is to make the system available as open source 45

Would you use it? 46

Thank you! Any Questions? Martin Maas, Tim Harris, Krste Asanovic, John Kubiatowicz {maas,krste,kubitron}@eecs.berkeley.edu timothy.l.harris@oracle.com Work started while at Oracle Labs, Cambridge.