Greater complexity & reliance

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "Greater complexity & reliance"

Transcription

1 Tolerating Memory Leaks Michael. ond Kathryn S. McKinley ugs in eployed Software eployed software fails ifferent environment and inputs different behaviors Greater complexity & reliance 1

2 ugs in eployed Software eployed software fails ifferent environment and inputs different behaviors Greater complexity & reliance Memory leaks are a real problem ixing leaks is hard Memory Leaks in eployed Systems Memory leaks are a real problem Managed languages do not eliminate them 2

3 Memory Leaks in eployed Systems Memory leaks are a real problem Managed languages do not eliminate them ead Reachable Live Memory Leaks in eployed Systems Memory leaks are a real problem Managed languages do not eliminate them ead Reachable Live 3

4 Memory Leaks in eployed Systems Memory leaks are a real problem Managed languages do not eliminate them ead Reachable Live Memory Leaks in eployed Systems Memory leaks are a real problem Managed languages do not eliminate them ead Live 4

5 Memory Leaks in eployed Systems Memory leaks are a real problem Managed languages do not eliminate them Slow & crash real programs ead Live Memory Leaks in eployed Systems Memory leaks are a real problem Managed languages do not eliminate them Slow & crash real programs Unacceptable for some applications 5

6 Memory Leaks in eployed Systems Memory leaks are a real problem Managed languages do not eliminate them Slow & crash real programs Unacceptable for some applications ixing leaks is hard Leaks take time to materialize ailure far from cause xample riverless truck 10,000 lines of # Leak: past obstacles remained reachable No immediate symptoms This problem was pernicious because it only showed up after 40 minutes to an hour of driving around and collecting obstacles. Quick fix : after 40 minutes, stop & reboot nvironment sensitive More obstacles in deployment: failed in 28 minutes 6

7 xample riverless truck 10,000 lines of # Leak: past obstacles remained reachable No immediate symptoms This problem was pernicious because it only showed up after 40 minutes to an hour of driving around and collecting obstacles. Quick fix : restart after 40 minutes nvironment sensitive More obstacles in deployment ailed in 28 minutes xample riverless truck 10,000 lines of # Leak: past obstacles remained reachable No immediate symptoms This problem was pernicious because it only showed up after 40 minutes to an hour of driving around and collecting obstacles. Quick fix : restart after 40 minutes nvironment sensitive More obstacles in deployment ailed in 28 minutes 7

8 xample riverless truck 10,000 lines of # Leak: past obstacles remained reachable No immediate symptoms This problem was pernicious because it only showed up after 40 minutes to an hour of driving around and collecting obstacles. Quick fix : restart after 40 minutes nvironment sensitive More obstacles in deployment Unresponsive after 28 minutes Uncertainty in eployed Software Unknown leaks; unexpected failures Online leak diagnosis helps Too late to help failing systems 8

9 Uncertainty in eployed Software Unknown leaks; unexpected failures Online leak diagnosis helps Too late to help failing systems lso tolerate leaks Uncertainty in eployed Software Unknown leaks; unexpected failures Online leak diagnosis helps Too late to help failing systems lso tolerate leaks Illusion of fix 9

10 Uncertainty in eployed Software Unknown leaks; unexpected failures Online leak diagnosis helps Too late to help failing systems lso tolerate leaks liminate bad effects Illusion of fix on t slow on t crash Uncertainty in eployed Software Unknown leaks; unexpected failures Online leak diagnosis helps Too late to help failing systems lso tolerate leaks Illusion of fix liminate bad effects Preserve semantics on t slow on t crash efer OOM errors 10

11 Predicting the uture ead objects not used again Highly stale objects likely leaked Reachable ead Live Predicting the uture ead objects not used again Highly stale objects likely leaked Reachable ead [hilimbi & Hauswirth 04] [Qin et al. 05] [ond & McKinley 06] Live 11

12 Tolerating Leaks with Melt Move highly stale objects to disk Much larger than memory Time & space proportional to live memory Preserve semantics Stale objects In-use objects Stale objects Sounds like Paging! Stale objects In-use objects Stale objects 12

13 Sounds like Paging! Paging insufficient for managed languages Need object granularity G s working set is all reachable objects Sounds like Paging! Paging insufficient for managed languages Need object granularity G s working set is all reachable objects ookmarking collection [Hertz et al. 05] 13

14 hallenge #1: How does Melt identify stale objects? hallenge #1: How does Melt identify stale objects? G: for all fields a.f a.f = 0x1; 14

15 hallenge #1: How does Melt identify stale objects? G: for all fields a.f a.f = 0x1; hallenge #1: How does Melt identify stale objects? G: for all fields a.f a.f = 0x1; pplication: b = a.f; if (b & 0x1) { b &= ~0x1; a.f = b; [atomic] } 15

16 hallenge #1: How does Melt identify stale objects? G: for all fields a.f a.f = 0x1; pplication: b = a.f; if (b & 0x1) { b &= ~0x1; a.f = b; [atomic] } dd 6% to application time hallenge #1: How does Melt identify stale objects? G: for all fields a.f a.f = 0x1; pplication: b = a.f; if (b & 0x1) { b &= ~0x1; a.f = b; [atomic] } 16

17 hallenge #1: How does Melt identify stale objects? G: for all fields a.f a.f = 0x1; pplication: b = a.f; if (b & 0x1) { b &= ~0x1; a.f = b; [atomic] } Stale Space Heap nearly full move stale objects to disk in-use space stale space 17

18 Stale Space in-use space stale space hallenge #2 How does Melt maintain pointers? in-use space stale space 18

19 Stub-Scion Scion Pairs scion space scion stub in-use space stale space Stub-Scion Scion Pairs scion table scion scion space scion stub in-use space stale space 19

20 Stub-Scion Scion Pairs scion scion scion? table space scion stub in-use space stale space Scion-Referenced Object ecomes Stale scion table scion scion space scion stub in-use space stale space 20

21 Scion-Referenced Object ecomes Stale scion table scion space stub in-use space stale space hallenge #3 What if program accesses highly stale object? scion table scion space stub in-use space stale space 21

22 pplication ccesses Stale Object scion table scion space b = a.f; if (b & 0x1) { b &= ~0x1; if (instalespace(b)) b = activate(b); stub a.f = b; [atomic] } in-use space stale space pplication ccesses Stale Object scion table scion scion space stub scion stub in-use space stale space 22

23 pplication ccesses Stale Object scion table scion scion space stub scion stub in-use space stale space pplication ccesses Stale Object scion table scion scion space stub scion stub in-use space stale space 23

24 Implementation Integrated into Jikes RVM Works with any tracing collector valuation uses generational copying collector Implementation Integrated into Jikes RVM Works with any tracing collector valuation uses generational copying collector 32-bit 2 G 64-bit 120 G 24

25 Implementation Integrated into Jikes RVM Works with any tracing collector valuation uses generational copying collector mapping stub 32-bit 2 G 64-bit 120 G Performance valuation Methodology aapo, SPjbb2000, SPjvm98 ual-core Pentium 4 eterministic execution (replay) Results 6% overhead (read barriers) Stress test: still 6% overhead Speedups in tight heaps (reduced G workload) 25

26 Tolerating Leaks Leak clipse iff clipse opy-paste JbbMod ListLeak SwapLeak MySQL elaunay Mesh ualleak SPjbb2000 Mckoi atabase Melt s effect Tolerates until 24-hr limit (1,000X longer) Tolerates until 24-hr limit (194X longer) Tolerates until 20-hr crash (19X longer) Tolerates until disk full (200X longer) Tolerates until disk full (1,000X longer) Some highly stale but in-use (74X longer) Short-running Heap growth is in-use (2X longer) Heap growth is mostly in-use (2X longer) Thread leak: extra support needed (2X longer) Tolerating Leaks Leak clipse iff clipse opy-paste JbbMod ListLeak SwapLeak MySQL elaunay Mesh ualleak SPjbb2000 Mckoi atabase Melt s effect Tolerates until 24-hr limit (1,000X longer) Tolerates until 24-hr limit (194X longer) Tolerates until 20-hr crash (19X longer) Tolerates until disk full (200X longer) Tolerates until disk full (1,000X longer) Some highly stale but in-use (74X longer) Short-running Heap growth is in-use (2X longer) Heap growth is mostly in-use (2X longer) Thread leak: extra support needed (2X longer) 26

27 Tolerating Leaks Leak clipse iff clipse opy-paste JbbMod ListLeak SwapLeak MySQL elaunay Mesh ualleak SPjbb2000 Mckoi atabase Melt s effect Tolerates until 24-hr limit (1,000X longer) Tolerates until 24-hr limit (194X longer) Tolerates until 20-hr crash (19X longer) Tolerates until disk full (200X longer) Tolerates until disk full (1,000X longer) Some highly stale but in-use (74X longer) Short-running Heap growth is in-use (2X longer) Heap growth is mostly in-use (2X longer) Thread leak: extra support needed (2X longer) Tolerating Leaks Leak clipse iff clipse opy-paste JbbMod ListLeak SwapLeak MySQL elaunay Mesh ualleak SPjbb2000 Mckoi atabase Melt s effect Tolerates until 24-hr limit (1,000X longer) Tolerates until 24-hr limit (194X longer) Tolerates until 20-hr crash (19X longer) Tolerates until disk full (200X longer) Tolerates until disk full (1,000X longer) Some highly stale but in-use (74X longer) Short-running Heap growth is in-use (2X longer) Heap growth is mostly in-use (2X longer) Thread leak: extra support needed (2X longer) 27

28 Tolerating Leaks Leak clipse iff clipse opy-paste JbbMod ListLeak SwapLeak MySQL elaunay Mesh ualleak SPjbb2000 Mckoi atabase Melt s effect Tolerates until 24-hr limit (1,000X longer) Tolerates until 24-hr limit (194X longer) Tolerates until 20-hr crash (19X longer) Tolerates until disk full (200X longer) Tolerates until disk full (1,000X longer) Some highly stale but in-use (74X longer) Short-running Heap growth is in-use (2X longer) Heap growth is mostly in-use (2X longer) Thread leak: extra support needed (2X longer) Tolerating Leaks Leak clipse iff clipse opy-paste JbbMod ListLeak SwapLeak MySQL elaunay Mesh ualleak SPjbb2000 Mckoi atabase Melt s effect Tolerates until 24-hr limit (1,000X longer) Tolerates until 24-hr limit (194X longer) Tolerates until 20-hr crash (19X longer) Tolerates until disk full (200X longer) Tolerates until disk full (1,000X longer) Some highly stale but in-use (74X longer) Short-running Heap growth is in-use (2X longer) Heap growth is mostly in-use (2X longer) Thread leak: extra support needed (2X longer) 28

29 Tolerating Leaks Leak clipse iff clipse opy-paste JbbMod ListLeak SwapLeak MySQL elaunay Mesh ualleak SPjbb2000 Mckoi atabase Melt s effect Tolerates until 24-hr limit (1,000X longer) Tolerates until 24-hr limit (194X longer) Tolerates until 20-hr crash (19X longer) Tolerates until disk full (200X longer) Tolerates until disk full (1,000X longer) Some highly stale but in-use (74X longer) Short-running Heap growth is in-use (2X longer) Heap growth is mostly in-use (2X longer) Thread leak: extra support needed (2X longer) Tolerating Leaks Leak clipse iff clipse opy-paste JbbMod ListLeak SwapLeak MySQL elaunay Mesh ualleak SPjbb2000 Mckoi atabase Melt s effect Tolerates until 24-hr limit (1,000X longer) Tolerates until 24-hr limit (194X longer) Tolerates until 20-hr crash (19X longer) Tolerates until disk full (200X longer) Tolerates until disk full (1,000X longer) Some highly stale but in-use (74X longer) Short-running Heap growth is in-use (2X longer) Heap growth is mostly in-use (2X longer) Thread leak: extra support needed (2X longer) 29

30 clipse iff: Reachable Memory 256 Reachable memory (M) Iteration clipse iff: Reachable Memory 256 Reachable memory (M) Iteration 30

31 clipse iff: Performance 31

32 clipse iff: Performance clipse iff: Performance 32

33 Related Work Managed [LeakSurvivor, Tang et al. 08] [Panacea, Goldstein et al. 07, reitgand et al. 07] on t guarantee time & space proportional to live memory Native [yclic memory allocation, Nguyen & Rinard 07] [Plug, Novark et al. 08] ifferent challenges & opportunities Less coverage or change semantics Orthogonal persistence & distributed G arriers, swizzling, object faulting, stub-scion pairs 33

34 onclusion inding bugs before deployment is hard onclusion inding bugs before deployment is hard Online diagnosis helps developers Help users in meantime Tolerate leaks with Melt: illusion of fix Stale objects 34

35 onclusion inding bugs before deployment is hard Online diagnosis helps developers Help users in meantime Tolerate leaks with Melt: illusion of fix Time & space proportional to live memory Preserve semantics onclusion inding bugs before deployment is hard Online diagnosis helps developers Help users in meantime Tolerate leaks with Melt: illusion of fix Time & space proportional to live memory Preserve semantics uys developers time to fix leaks Thank you! 35

36 ackup Triggering Melt xpected heap fullness Start INTIV Unexpected heap fullness MRK STL Heap full or nearly full MOV & MRK STL Heap not nearly full Heap full or nearly full fter marking WIT Heap not nearly full ack 36

37 onclusion inding bugs before deployment is hard Online diagnosis helps developers To help users in meantime, tolerate bugs Tolerate leaks with Melt: illusion of fix Stale objects Related Work: Tolerating ugs Nondeterministic errors [tom-id] [iehard] [Grace] [Rx] Memory corruption: perturb layout oncurrency bugs: perturb scheduling General bugs Ignore failing operations [O] Need higher level, more proactive approaches 37

38 Melt s G Overhead 2.5 ase Marking (every G) Melt (every G) Normalized G time Minimum heap multiplier ack 38

I J C S I E International Science Press

I J C S I E International Science Press Vol. 5, No. 2, December 2014, pp. 53-56 I J C S I E International Science Press Tolerating Memory Leaks at Runtime JITENDER SINGH YADAV, MOHIT YADAV, KIRTI AZAD AND JANPREET SINGH JOLLY CSE B-tech 4th

More information

Leak Pruning. 1. Introduction. Abstract. Department of Computer Sciences The University of Texas at Austin

Leak Pruning. 1. Introduction. Abstract. Department of Computer Sciences The University of Texas at Austin Leak Pruning Michael D. Bond Kathryn S. McKinley Department of Computer Sciences The University of Texas at Austin {mikebond,mckinley}@cs.utexas.edu Abstract Managed languages improve programmer productivity

More information

Managed runtimes & garbage collection. CSE 6341 Some slides by Kathryn McKinley

Managed runtimes & garbage collection. CSE 6341 Some slides by Kathryn McKinley Managed runtimes & garbage collection CSE 6341 Some slides by Kathryn McKinley 1 Managed runtimes Advantages? Disadvantages? 2 Managed runtimes Advantages? Reliability Security Portability Performance?

More information

Sustainable Memory Use Allocation & (Implicit) Deallocation (mostly in Java)

Sustainable Memory Use Allocation & (Implicit) Deallocation (mostly in Java) COMP 412 FALL 2017 Sustainable Memory Use Allocation & (Implicit) Deallocation (mostly in Java) Copyright 2017, Keith D. Cooper & Zoran Budimlić, all rights reserved. Students enrolled in Comp 412 at Rice

More information

Bugs in Deployed Software

Bugs in Deployed Software Bell: Bit-Encoding Online Memory Leak Detection Michael D. Bond Kathryn S. McKinley University of Texas at Austin Bugs in Deployed Software Humans rely on software for critical tasks Bugs are costly &

More information

Testing Objectives. Successful testing: discovers previously unknown errors

Testing Objectives. Successful testing: discovers previously unknown errors Testing Objectives Informal view: Testing: a process of executing software with the intent of finding errors Good testing: a high probability of finding as-yetundiscovered errors Successful testing: discovers

More information

Acknowledgements These slides are based on Kathryn McKinley s slides on garbage collection as well as E Christopher Lewis s slides

Acknowledgements These slides are based on Kathryn McKinley s slides on garbage collection as well as E Christopher Lewis s slides Garbage Collection Last time Compiling Object-Oriented Languages Today Motivation behind garbage collection Garbage collection basics Garbage collection performance Specific example of using GC in C++

More information

Testing. ECE/CS 5780/6780: Embedded System Design. Why is testing so hard? Why do testing?

Testing. ECE/CS 5780/6780: Embedded System Design. Why is testing so hard? Why do testing? Testing ECE/CS 5780/6780: Embedded System Design Scott R. Little Lecture 24: Introduction to Software Testing and Verification What is software testing? Running a program in order to find bugs (faults,

More information

Short-term Memory for Self-collecting Mutators. Martin Aigner, Andreas Haas, Christoph Kirsch, Ana Sokolova Universität Salzburg

Short-term Memory for Self-collecting Mutators. Martin Aigner, Andreas Haas, Christoph Kirsch, Ana Sokolova Universität Salzburg Short-term Memory for Self-collecting Mutators Martin Aigner, Andreas Haas, Christoph Kirsch, Ana Sokolova Universität Salzburg CHESS Seminar, UC Berkeley, September 2010 Heap Management explicit heap

More information

First-Aid: Surviving and Preventing Memory Management Bugs during Production Runs

First-Aid: Surviving and Preventing Memory Management Bugs during Production Runs First-Aid: Surviving and Preventing Memory Management Bugs during Production Runs Qi Gao Wenbin Zhang Yan Tang Feng Qin Dept. of Computer Science and Engineering Ohio State University, Columbus, OH, 43210,

More information

Optimistic Shared Memory Dependence Tracing

Optimistic Shared Memory Dependence Tracing Optimistic Shared Memory Dependence Tracing Yanyan Jiang1, Du Li2, Chang Xu1, Xiaoxing Ma1 and Jian Lu1 Nanjing University 2 Carnegie Mellon University 1 powered by Understanding Non-determinism Concurrent

More information

Testing. Unit, integration, regression, validation, system. OO Testing techniques Application of traditional techniques to OO software

Testing. Unit, integration, regression, validation, system. OO Testing techniques Application of traditional techniques to OO software Testing Basic ideas and principles Traditional testing strategies Unit, integration, regression, validation, system OO Testing techniques Application of traditional techniques to OO software Testing-11,

More information

Reference Object Processing in On-The-Fly Garbage Collection

Reference Object Processing in On-The-Fly Garbage Collection Reference Object Processing in On-The-Fly Garbage Collection Tomoharu Ugawa, Kochi University of Technology Richard Jones, Carl Ritson, University of Kent Weak Pointers Weak pointers are a mechanism to

More information

Reference Counting. Reference counting: a way to know whether a record has other users

Reference Counting. Reference counting: a way to know whether a record has other users Garbage Collection Today: various garbage collection strategies; basic ideas: Allocate until we run out of space; then try to free stuff Invariant: only the PL implementation (runtime system) knows about

More information

Garbage Collection Algorithms. Ganesh Bikshandi

Garbage Collection Algorithms. Ganesh Bikshandi Garbage Collection Algorithms Ganesh Bikshandi Announcement MP4 posted Term paper posted Introduction Garbage : discarded or useless material Collection : the act or process of collecting Garbage collection

More information

IBM Integration Bus v9.0 System Administration: Course Content By Yuvaraj C Panneerselvam

IBM Integration Bus v9.0 System Administration: Course Content By Yuvaraj C Panneerselvam IBM Integration Bus v9.0 System Administration: Course Content By Yuvaraj C Panneerselvam 1. COURSE OVERVIEW As part of this course, you will learn how to administer IBM Integration Bus on distributed

More information

Efficient Garbage Collection for Large Object-Oriented Databases

Efficient Garbage Collection for Large Object-Oriented Databases Efficient Garbage Collection for Large Object-Oriented Databases by Tony Chun Tung Ng B.S., University of Illinois, Urbana-Champaign (1994) Submitted to the Department of Electrical Engineering and Computer

More information

Lightweight Data Race Detection for Production Runs

Lightweight Data Race Detection for Production Runs Lightweight Data Race Detection for Production Runs Swarnendu Biswas, UT Austin Man Cao, Ohio State University Minjia Zhang, Microsoft Research Michael D. Bond, Ohio State University Benjamin P. Wood,

More information

Program Calling Context. Motivation

Program Calling Context. Motivation Program alling ontext Motivation alling context enhances program understanding and dynamic analyses by providing a rich representation of program location ollecting calling context can be expensive The

More information

NPTEL Course Jan K. Gopinath Indian Institute of Science

NPTEL Course Jan K. Gopinath Indian Institute of Science Storage Systems NPTEL Course Jan 2012 (Lecture 39) K. Gopinath Indian Institute of Science Google File System Non-Posix scalable distr file system for large distr dataintensive applications performance,

More information

Web Services - Concepts, Architecture and Applications Part 3: Asynchronous middleware

Web Services - Concepts, Architecture and Applications Part 3: Asynchronous middleware Web Services - Concepts, Architecture and Applications Part 3: Asynchronous middleware Gustavo Alonso and Cesare Pautasso Computer Science Department ETH Zürich alonso@inf.ethz.ch http://www.inf.ethz.ch/~alonso

More information

Fast Byte-Granularity Software Fault Isolation

Fast Byte-Granularity Software Fault Isolation Fast Byte-Granularity Software Fault Isolation Manuel Costa Microsoft Research, Cambridge Joint work with: Miguel Castro, Jean-Philippe Martin, Marcus Peinado, Periklis Akritidis, Austin Donnelly, Paul

More information

GC Assertions: Using the Garbage Collector to Check Heap Properties

GC Assertions: Using the Garbage Collector to Check Heap Properties GC Assertions: Using the Garbage Collector to Check Heap Properties Edward E. Aftandilian Samuel Z. Guyer Department of Computer Science Tufts University {eaftan,sguyer}@cs.tufts.edu Abstract This paper

More information

Garbage Collection Techniques

Garbage Collection Techniques Garbage Collection Techniques Michael Jantz COSC 340: Software Engineering 1 Memory Management Memory Management Recognizing when allocated objects are no longer needed Deallocating (freeing) the memory

More information

Java Without the Jitter

Java Without the Jitter TECHNOLOGY WHITE PAPER Achieving Ultra-Low Latency Table of Contents Executive Summary... 3 Introduction... 4 Why Java Pauses Can t Be Tuned Away.... 5 Modern Servers Have Huge Capacities Why Hasn t Latency

More information

Probabilistic Calling Context

Probabilistic Calling Context Probabilistic Calling Context Michael D. Bond Kathryn S. McKinley University of Texas at Austin Why Context Sensitivity? Static program location not enough at com.mckoi.db.jdbcserver.jdbcinterface.execquery():213

More information

Triage: Diagnosing Production Run Failures at the User s Site

Triage: Diagnosing Production Run Failures at the User s Site Triage: Diagnosing Production Run Failures at the User s Site Joseph Tucek, Shan Lu, Chengdu Huang, Spiros Xanthos and Yuanyuan Zhou Department of Computer Science University of Illinois at Urbana Champaign

More information

JOURNALING FILE SYSTEMS. CS124 Operating Systems Winter , Lecture 26

JOURNALING FILE SYSTEMS. CS124 Operating Systems Winter , Lecture 26 JOURNALING FILE SYSTEMS CS124 Operating Systems Winter 2015-2016, Lecture 26 2 File System Robustness The operating system keeps a cache of filesystem data Secondary storage devices are much slower than

More information

Surviving Software Failures

Surviving Software Failures Surviving Software Failures A survey on the research context of "Rx: Treating Bugs as Allergies A Safe Method to Survive Software Failures" by F. Qin, J. Tucek, J. Sundaresan, and Y. Zhou. Johannes Pletzer,

More information

Plug: Automatically Tolerating Memory Leaks in C and C++ Applications

Plug: Automatically Tolerating Memory Leaks in C and C++ Applications Plug: Automatically Tolerating Memory Leaks in C and C++ Applications Gene Novark Emery D. Berger Dept. of Computer Science University of Massachusetts Amherst Amherst, MA 01003 gnovark@cs.umass.edu, emery@cs.umass.edu

More information

Program Testing via Symbolic Execution

Program Testing via Symbolic Execution Program Testing via Symbolic Execution Daniel Dunbar Program Testing via Symbolic Execution p. 1/26 Introduction Motivation Manual testing is difficult Program Testing via Symbolic Execution p. 2/26 Introduction

More information

The Google File System (GFS)

The Google File System (GFS) 1 The Google File System (GFS) CS60002: Distributed Systems Antonio Bruto da Costa Ph.D. Student, Formal Methods Lab, Dept. of Computer Sc. & Engg., Indian Institute of Technology Kharagpur 2 Design constraints

More information

Mozart System Limitations for Version (draft)

Mozart System Limitations for Version (draft) Mozart System Limitations for Version 1.3.0 (draft) Peter Van Roy and Seif Haridi April 28, 2004 In der Beschränkung zeigt sich erst der Meister. Within limitations the Master is first revealed. Johann

More information

FS Consistency & Journaling

FS Consistency & Journaling FS Consistency & Journaling Nima Honarmand (Based on slides by Prof. Andrea Arpaci-Dusseau) Why Is Consistency Challenging? File system may perform several disk writes to serve a single request Caching

More information

Azul Pauseless Garbage Collection

Azul Pauseless Garbage Collection TECHNOLOGY WHITE PAPER Azul Pauseless Garbage Collection Providing continuous, pauseless operation for Java applications Executive Summary Conventional garbage collection approaches limit the scalability

More information

TECHNOLOGY WHITE PAPER. Azul Pauseless Garbage Collection. Providing continuous, pauseless operation for Java applications

TECHNOLOGY WHITE PAPER. Azul Pauseless Garbage Collection. Providing continuous, pauseless operation for Java applications TECHNOLOGY WHITE PAPER Azul Pauseless Garbage Collection Providing continuous, pauseless operation for Java applications The garbage collection process automatically frees the heap space used by objects

More information

Concurrent Garbage Collection

Concurrent Garbage Collection Concurrent Garbage Collection Deepak Sreedhar JVM engineer, Azul Systems Java User Group Bangalore 1 @azulsystems azulsystems.com About me: Deepak Sreedhar JVM student at Azul Systems Currently working

More information

Encyclopedia of Crash Dump Analysis Patterns

Encyclopedia of Crash Dump Analysis Patterns Encyclopedia of Crash Dump Analysis Patterns Detecting Abnormal Software Structure and Behavior in Computer Memory Dmitry Vostokov Software Diagnostics Institute OpenTask 2 Published by OpenTask, Republic

More information

MEMORY MANAGEMENT HEAP, STACK AND GARBAGE COLLECTION

MEMORY MANAGEMENT HEAP, STACK AND GARBAGE COLLECTION MEMORY MANAGEMENT HEAP, STACK AND GARBAGE COLLECTION 2 1. What is the Heap Size: 2 2. What is Garbage Collection: 3 3. How are Java objects stored in memory? 3 4. What is the difference between stack and

More information

Efficient Context Sensitivity for Dynamic Analyses via Calling Context Uptrees and Customized Memory Management

Efficient Context Sensitivity for Dynamic Analyses via Calling Context Uptrees and Customized Memory Management to Reuse * * Evaluated * OOPSLA * Artifact * AEC Efficient Context Sensitivity for Dynamic Analyses via Calling Context Uptrees and Customized Memory Management Jipeng Huang Michael D. Bond Ohio State

More information

Memory Allocation. Copyright : University of Illinois CS 241 Staff 1

Memory Allocation. Copyright : University of Illinois CS 241 Staff 1 Memory Allocation Copyright : University of Illinois CS 241 Staff 1 Recap: Virtual Addresses A virtual address is a memory address that a process uses to access its own memory Virtual address actual physical

More information

Be Conservative: Enhancing Failure Diagnosis with Proactive Logging

Be Conservative: Enhancing Failure Diagnosis with Proactive Logging Be Conservative: Enhancing Failure Diagnosis with Proactive Logging Ding Yuan, Soyeon Park, Peng Huang, Yang Liu, Michael Lee, Xiaoming Tang, Yuanyuan Zhou, Stefan Savage University of California, San

More information

CrashMonkey: A Framework to Systematically Test File-System Crash Consistency. Ashlie Martinez Vijay Chidambaram University of Texas at Austin

CrashMonkey: A Framework to Systematically Test File-System Crash Consistency. Ashlie Martinez Vijay Chidambaram University of Texas at Austin CrashMonkey: A Framework to Systematically Test File-System Crash Consistency Ashlie Martinez Vijay Chidambaram University of Texas at Austin Crash Consistency File-system updates change multiple blocks

More information

ORACLE ENTERPRISE MANAGER 10g ORACLE DIAGNOSTICS PACK FOR NON-ORACLE MIDDLEWARE

ORACLE ENTERPRISE MANAGER 10g ORACLE DIAGNOSTICS PACK FOR NON-ORACLE MIDDLEWARE ORACLE ENTERPRISE MANAGER 10g ORACLE DIAGNOSTICS PACK FOR NON-ORACLE MIDDLEWARE Most application performance problems surface during peak loads. Often times, these problems are time and resource intensive,

More information

DoubleChecker: Efficient Sound and Precise Atomicity Checking

DoubleChecker: Efficient Sound and Precise Atomicity Checking DoubleChecker: Efficient Sound and Precise Atomicity Checking Swarnendu Biswas, Jipeng Huang, Aritra Sengupta, and Michael D. Bond The Ohio State University PLDI 2014 Impact of Concurrency Bugs Impact

More information

Virtualization. Dr. Yingwu Zhu

Virtualization. Dr. Yingwu Zhu Virtualization Dr. Yingwu Zhu Virtualization Definition Framework or methodology of dividing the resources of a computer into multiple execution environments. Types Platform Virtualization: Simulate a

More information

Memory & Thread Debugger

Memory & Thread Debugger Memory & Thread Debugger Here is What Will Be Covered Overview Memory/Thread analysis New Features Deep dive into debugger integrations Demo Call to action Intel Confidential 2 Analysis Tools for Diagnosis

More information

Rocksteady: Fast Migration for Low-Latency In-memory Storage. Chinmay Kulkarni, Aniraj Kesavan, Tian Zhang, Robert Ricci, Ryan Stutsman

Rocksteady: Fast Migration for Low-Latency In-memory Storage. Chinmay Kulkarni, Aniraj Kesavan, Tian Zhang, Robert Ricci, Ryan Stutsman Rocksteady: Fast Migration for Low-Latency In-memory Storage Chinmay Kulkarni, niraj Kesavan, Tian Zhang, Robert Ricci, Ryan Stutsman 1 Introduction Distributed low-latency in-memory key-value stores are

More information

(In columns, of course.)

(In columns, of course.) CPS 310 first midterm exam, 10/9/2013 Your name please: Part 1. Fun with forks (a) What is the output generated by this program? In fact the output is not uniquely defined, i.e., it is not always the same.

More information

TraceBack: First Fault Diagnosis by Reconstruction of Distributed Control Flow

TraceBack: First Fault Diagnosis by Reconstruction of Distributed Control Flow TraceBack: First Fault Diagnosis by Reconstruction of Distributed Control Flow Andrew Ayers Chris Metcalf Junghwan Rhee Richard Schooler VERITAS Emmett Witchel Microsoft Anant Agarwal UT Austin MIT Software

More information

the gamedesigninitiative at cornell university Lecture 9 Memory Management

the gamedesigninitiative at cornell university Lecture 9 Memory Management Lecture 9 Gaming Memory Constraints Redux Wii-U Playstation 4 2GB of RAM 1GB dedicated to OS Shared with GPGPU 8GB of RAM Shared GPU, 8-core CPU OS footprint unknown 2 Two Main Concerns with Memory Getting

More information

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

The C4 Collector. Or: the Application memory wall will remain until compaction is solved. Gil Tene Balaji Iyengar Michael Wolf The C4 Collector Or: the Application memory wall will remain until compaction is solved Gil Tene Balaji Iyengar Michael Wolf High Level Agenda 1. The Application Memory Wall 2. Generational collection

More information

Designing Parallel Programs. This review was developed from Introduction to Parallel Computing

Designing Parallel Programs. This review was developed from Introduction to Parallel Computing Designing Parallel Programs This review was developed from Introduction to Parallel Computing Author: Blaise Barney, Lawrence Livermore National Laboratory references: https://computing.llnl.gov/tutorials/parallel_comp/#whatis

More information

Building a Reactive Immune System for Software Services

Building a Reactive Immune System for Software Services Building a Reactive Immune System for Software Services Tobias Haupt January 24, 2007 Abstract In this article I summarize the ideas and concepts of the paper Building a Reactive Immune System for Software

More information

Proactive Recovery in a Byzantine-Fault-Tolerant System

Proactive Recovery in a Byzantine-Fault-Tolerant System Proactive Recovery in a Byzantine-Fault-Tolerant System Miguel Castro and Barbara Liskov Laboratory for Computer Science, Massachusetts Institute of Technology, 545 Technology Square, Cambridge, MA 02139

More information

MC 2 : High-Performance Garbage Collection for Memory-Constrained Environments

MC 2 : High-Performance Garbage Collection for Memory-Constrained Environments : High-Performance Garbage ollection for Memory-onstrained Environments Narendran Sachindran J. Eliot. Moss Emery D. erger Department of omputer Science University of Massachusetts Amherst, MA 0003, USA

More information

POMP: Postmortem Program Analysis with Hardware-Enhanced Post-Crash Artifacts

POMP: Postmortem Program Analysis with Hardware-Enhanced Post-Crash Artifacts POMP: Postmortem Program Analysis with Hardware-Enhanced Post-Crash Artifacts Jun Xu 1, Dongliang Mu 12, Xinyu Xing 1, Peng Liu 1, Ping Chen 1, Bing Mao 2 1. Pennsylvania State University 2. Nanjing University

More information

Statistical Debugging for Real-World Performance Problems

Statistical Debugging for Real-World Performance Problems Statistical Debugging for Real-World Performance Problems Linhai Song 1 and Shan Lu 2 1 University of Wisconsin-Madison 2 University of Chicago What are Performance Problems? Definition of Performance

More information

The Timed Asynchronous Distributed System Model By Flaviu Cristian and Christof Fetzer

The Timed Asynchronous Distributed System Model By Flaviu Cristian and Christof Fetzer The Timed Asynchronous Distributed System Model By Flaviu Cristian and Christof Fetzer - proposes a formal definition for the timed asynchronous distributed system model - presents measurements of process

More information

Operating System Principles: Memory Management Swapping, Paging, and Virtual Memory CS 111. Operating Systems Peter Reiher

Operating System Principles: Memory Management Swapping, Paging, and Virtual Memory CS 111. Operating Systems Peter Reiher Operating System Principles: Memory Management Swapping, Paging, and Virtual Memory Operating Systems Peter Reiher Page 1 Outline Swapping Paging Virtual memory Page 2 Swapping What if we don t have enough

More information

DATA DOMAIN INVULNERABILITY ARCHITECTURE: ENHANCING DATA INTEGRITY AND RECOVERABILITY

DATA DOMAIN INVULNERABILITY ARCHITECTURE: ENHANCING DATA INTEGRITY AND RECOVERABILITY WHITEPAPER DATA DOMAIN INVULNERABILITY ARCHITECTURE: ENHANCING DATA INTEGRITY AND RECOVERABILITY A Detailed Review ABSTRACT No single mechanism is sufficient to ensure data integrity in a storage system.

More information

Algorithms and Data Structures for Efficient Free Space Reclamation in WAFL

Algorithms and Data Structures for Efficient Free Space Reclamation in WAFL Algorithms and Data Structures for Efficient Free Space Reclamation in WAFL Ram Kesavan Technical Director, WAFL NetApp, Inc. SDC 2017 1 Outline Garbage collection in WAFL Usenix FAST 2017 ACM Transactions

More information

Respec: Efficient Online Multiprocessor Replay via Speculation and External Determinism

Respec: Efficient Online Multiprocessor Replay via Speculation and External Determinism Respec: Efficient Online Multiprocessor Replay via Speculation and External Determinism Dongyoon Lee Benjamin Wester Kaushik Veeraraghavan Satish Narayanasamy Peter M. Chen Jason Flinn Dept. of EECS, University

More information

CMSC 330: Organization of Programming Languages

CMSC 330: Organization of Programming Languages CMSC 330: Organization of Programming Languages Memory Management and Garbage Collection CMSC 330 - Spring 2013 1 Memory Attributes! Memory to store data in programming languages has the following lifecycle

More information

Write Barrier Elision for Concurrent Garbage Collectors

Write Barrier Elision for Concurrent Garbage Collectors Write Barrier Elision for Concurrent Garbage Collectors Martin T. Vechev Computer Laboratory Cambridge University Cambridge CB3 FD, U.K. mv27@cl.cam.ac.uk David F. Bacon IBM T.J. Watson Research Center

More information

Undermining Information Hiding (And What to do About it)

Undermining Information Hiding (And What to do About it) Undermining Information Hiding (And What to do About it) Enes Göktaş, Robert Gawlik, Benjamin Kollenda, Elias Athanasopoulos, Georgios Portokalidis, Cristiano Giuffrida, Herbert Bos Overview Mitigating

More information

The Z Garbage Collector An Introduction

The Z Garbage Collector An Introduction The Z Garbage Collector An Introduction Per Lidén & Stefan Karlsson HotSpot Garbage Collection Team FOSDEM 2018 Safe Harbor Statement The following is intended to outline our general product direction.

More information

Garbage Collection. Weiyuan Li

Garbage Collection. Weiyuan Li Garbage Collection Weiyuan Li Why GC exactly? - Laziness - Performance - free is not free - combats memory fragmentation - More flame wars Basic concepts - Type Safety - Safe: ML, Java (not really) - Unsafe:

More information

Java performance - not so scary after all

Java performance - not so scary after all Java performance - not so scary after all Holly Cummins IBM Hursley Labs 2009 IBM Corporation 2001 About me Joined IBM Began professional life writing event framework for WebSphere 2004 Moved to work on

More information

Honours/Master/PhD Thesis Projects Supervised by Dr. Yulei Sui

Honours/Master/PhD Thesis Projects Supervised by Dr. Yulei Sui Honours/Master/PhD Thesis Projects Supervised by Dr. Yulei Sui Projects 1 Information flow analysis for mobile applications 2 2 Machine-learning-guide typestate analysis for UAF vulnerabilities 3 3 Preventing

More information

Thread-Aware Garbage Collection for Server Applications

Thread-Aware Garbage Collection for Server Applications Thread-Aware Garbage Collection for Server Applications Woo Jin Kim, Kyungbaek Kim, Jaesun Han, Keuntae Park and Daeyeon Park Department of Electrical Engineering & Computer Science Korea Advanced Institute

More information

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Database Systems: Fall 2008 Quiz II

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Database Systems: Fall 2008 Quiz II Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY 6.830 Database Systems: Fall 2008 Quiz II There are 14 questions and 11 pages in this quiz booklet. To receive

More information

Run-time Environments -Part 3

Run-time Environments -Part 3 Run-time Environments -Part 3 Y.N. Srikant Computer Science and Automation Indian Institute of Science Bangalore 560 012 NPTEL Course on Compiler Design Outline of the Lecture Part 3 What is run-time support?

More information

Resilient X10 Efficient failure-aware programming

Resilient X10 Efficient failure-aware programming David Cunningham, David Grove, Benjamin Herta, Arun Iyengar, Kiyokuni Kawachiya, Hiroki Murata, Vijay Saraswat, Mikio Takeuchi, Olivier Tardieu X10 Workshop 2014 Resilient X10 Efficient failure-aware programming

More information

Lesson 2 Dissecting Memory Problems

Lesson 2 Dissecting Memory Problems Lesson 2 Dissecting Memory Problems Poonam Parhar JVM Sustaining Engineer Oracle Agenda 1. Symptoms of Memory Problems 2. Causes of Memory Problems 3. OutOfMemoryError messages 3 Lesson 2-1 Symptoms of

More information

KESO Functional Safety and the Use of Java in Embedded Systems

KESO Functional Safety and the Use of Java in Embedded Systems KESO Functional Safety and the Use of Java in Embedded Systems Isabella S1lkerich, Bernhard Sechser Embedded Systems Engineering Kongress 05.12.2012 Lehrstuhl für Informa1k 4 Verteilte Systeme und Betriebssysteme

More information

The Esterel Language. The Esterel Version. Basic Ideas of Esterel

The Esterel Language. The Esterel Version. Basic Ideas of Esterel The Synchronous Language Esterel OMS W4995-02 Prof. Stephen. Edwards Fall 2002 olumbia University epartment of omputer Science The Esterel Language eveloped by Gérard erry starting 1983 Originally for

More information

RDMA Migration and RDMA Fault Tolerance for QEMU

RDMA Migration and RDMA Fault Tolerance for QEMU RDMA Migration and RDMA Fault Tolerance for QEMU Michael R. Hines IBM mrhines@us.ibm.com http://wiki.qemu.org/features/rdmalivemigration http://wiki.qemu.org/features/microcheckpointing 1 Migration design

More information

Copyright 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12

Copyright 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 1 Copyright 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 Managing Oracle Database 12c with Oracle Enterprise Manager 12c Martin

More information

Chapter 11, Testing. Using UML, Patterns, and Java. Object-Oriented Software Engineering

Chapter 11, Testing. Using UML, Patterns, and Java. Object-Oriented Software Engineering Chapter 11, Testing Using UML, Patterns, and Java Object-Oriented Software Engineering Outline Terminology Types of errors Dealing with errors Quality assurance vs Testing Component Testing! Unit testing!

More information

Intelligent Rebuilds in vsan 6.6 January 08, 2018

Intelligent Rebuilds in vsan 6.6 January 08, 2018 January 08, 2018 1 Table of Contents 1. Introduction 1.1.Executive Summary 1.2.Introduction to Intelligent Rebuilds 2. vsan 6.6 Intelligent Rebuilds 2.1.Purpose of Intelligent Rebuilds 2.2.Intelligent

More information

Statistical Debugging for Real-World Performance Problems. Linhai Song Advisor: Prof. Shan Lu

Statistical Debugging for Real-World Performance Problems. Linhai Song Advisor: Prof. Shan Lu Statistical Debugging for Real-World Performance Problems Linhai Song Advisor: Prof. Shan Lu 1 Software Efficiency is Critical No one wants slow and inefficient software Frustrate end users Cause economic

More information

Detecting and Fixing Memory-Related Performance Problems in Managed Languages

Detecting and Fixing Memory-Related Performance Problems in Managed Languages Detecting and Fixing -Related Performance Problems in Managed Languages Lu Fang Committee: Prof. Guoqing Xu (Chair), Prof. Alex Nicolau, Prof. Brian Demsky University of California, Irvine May 26, 2017,

More information

Processes and Tasks What comprises the state of a running program (a process or task)?

Processes and Tasks What comprises the state of a running program (a process or task)? Processes and Tasks What comprises the state of a running program (a process or task)? Microprocessor Address bus Control DRAM OS code and data special caches code/data cache EAXEBP EIP DS EBXESP EFlags

More information

Professor: Pete Keleher! Closures, candidate keys, canonical covers etc! Armstrong axioms!

Professor: Pete Keleher! Closures, candidate keys, canonical covers etc! Armstrong axioms! Professor: Pete Keleher! keleher@cs.umd.edu! } Mechanisms and definitions to work with FDs! Closures, candidate keys, canonical covers etc! Armstrong axioms! } Decompositions! Loss-less decompositions,

More information

Eliminate Memory Errors to Improve Program Stability

Eliminate Memory Errors to Improve Program Stability Introduction INTEL PARALLEL STUDIO XE EVALUATION GUIDE This guide will illustrate how Intel Parallel Studio XE memory checking capabilities can find crucial memory defects early in the development cycle.

More information

Connectivity-Based Garbage Collection

Connectivity-Based Garbage Collection Connectivity-Based Garbage Collection Martin Hirzel Vordiplom, Darmstadt University of Technology, 1998 M.S., University of Colorado at Boulder, 2000 A thesis submitted to the Faculty of the Graduate School

More information

UniSan: Proactive Kernel Memory Initialization to Eliminate Data Leakages

UniSan: Proactive Kernel Memory Initialization to Eliminate Data Leakages UniSan: Proactive Kernel Memory Initialization to Eliminate Data Leakages Kangjie Lu, Chengyu Song, Taesoo Kim, Wenke Lee School of Computer Science, Georgia Tech Any Problem Here? /* File: drivers/usb/core/devio.c*/

More information

Performance analysis and optimization of the Java memory system

Performance analysis and optimization of the Java memory system Retrospective Theses and Dissertations 2008 Performance analysis and optimization of the Java memory system Carl Stephen Lebsack Iowa State University Follow this and additional works at: http://lib.dr.iastate.edu/rtd

More information

Virtual Memory. Reading. Sections 5.4, 5.5, 5.6, 5.8, 5.10 (2) Lecture notes from MKP and S. Yalamanchili

Virtual Memory. Reading. Sections 5.4, 5.5, 5.6, 5.8, 5.10 (2) Lecture notes from MKP and S. Yalamanchili Virtual Memory Lecture notes from MKP and S. Yalamanchili Sections 5.4, 5.5, 5.6, 5.8, 5.10 Reading (2) 1 The Memory Hierarchy ALU registers Cache Memory Memory Memory Managed by the compiler Memory Managed

More information

DieHard: Memory Error Fault Tolerance in C and C++

DieHard: Memory Error Fault Tolerance in C and C++ DieHard: Memory Error Fault Tolerance in C and C++ Ben Zorn Microsoft Research In collaboration with Emery Berger and Gene Novark, Univ. of Massachusetts Ted Hart, Microsoft Research DieHard: Memory Error

More information

Connectivity-Based Garbage Collection

Connectivity-Based Garbage Collection Connectivity-Based Garbage Collection Martin Hirzel Vordiplom, Darmstadt University of Technology, 1998 This thesis entitled: Connectivity-Based Garbage Collection written by Martin Hirzel has been approved

More information

CS3210: Crash consistency

CS3210: Crash consistency CS3210: Crash consistency Kyle Harrigan 1 / 45 Administrivia Lab 4 Part C Due Tomorrow Quiz #2. Lab3-4, Ch 3-6 (read "xv6 book") Open laptop/book, no Internet 2 / 45 Summary of cs3210 Power-on -> BIOS

More information

Network Troubleshooting from End-Hosts. Renata Teixeira Laboratoire LIP6 CNRS and UPMC Sorbonne Universités

Network Troubleshooting from End-Hosts. Renata Teixeira Laboratoire LIP6 CNRS and UPMC Sorbonne Universités Network Troubleshooting from End-Hosts Renata Teixeira Laboratoire LIP6 CNRS and UPMC Sorbonne Universités Internet problems are hard to troubleshoot DNS? NAT? DHCP???? Net1 Stanford network Is my connection

More information

Linux multi-core scalability

Linux multi-core scalability Linux multi-core scalability Oct 2009 Andi Kleen Intel Corporation andi@firstfloor.org Overview Scalability theory Linux history Some common scalability trouble-spots Application workarounds Motivation

More information

Last week. Data on the stack is allocated automatically when we do a function call, and removed when we return

Last week. Data on the stack is allocated automatically when we do a function call, and removed when we return Last week Data can be allocated on the stack or on the heap (aka dynamic memory) Data on the stack is allocated automatically when we do a function call, and removed when we return f() {... int table[len];...

More information

Practical Byzantine Fault Tolerance Consensus and A Simple Distributed Ledger Application Hao Xu Muyun Chen Xin Li

Practical Byzantine Fault Tolerance Consensus and A Simple Distributed Ledger Application Hao Xu Muyun Chen Xin Li Practical Byzantine Fault Tolerance Consensus and A Simple Distributed Ledger Application Hao Xu Muyun Chen Xin Li Abstract Along with cryptocurrencies become a great success known to the world, how to

More information

MODELS OF DISTRIBUTED SYSTEMS

MODELS OF DISTRIBUTED SYSTEMS Distributed Systems Fö 2/3-1 Distributed Systems Fö 2/3-2 MODELS OF DISTRIBUTED SYSTEMS Basic Elements 1. Architectural Models 2. Interaction Models Resources in a distributed system are shared between

More information

CMSC 330: Organization of Programming Languages

CMSC 330: Organization of Programming Languages CMSC 330: Organization of Programming Languages Memory Management and Garbage Collection CMSC 330 Spring 2017 1 Memory Attributes Memory to store data in programming languages has the following lifecycle

More information

Respec: Efficient Online Multiprocessor Replay via Speculation and External Determinism

Respec: Efficient Online Multiprocessor Replay via Speculation and External Determinism Respec: Efficient Online Multiprocessor Replay via Speculation and External Determinism Dongyoon Lee Benjamin Wester Kaushik Veeraraghavan Satish Narayanasamy Peter M. Chen Jason Flinn Dept. of EECS, University

More information