A Lock-Free, Concurrent, and Incremental Stack Scanning Mechanism for Garbage Collectors

Two major efficiency parameters for garbage collectors are the throughput overheads and the pause times that they introduce. Highly responsive systems need to use collectors with as short as possible pause times. Pause times have decreased significantly over the years, especially through the use of...

Full description

Bibliographic Details
Main Authors: Gabriel Kliot, Erez Petrank, Bjarne Steensgaard
Other Authors: The Pennsylvania State University CiteSeerX Archives
Format: Text
Language:English
Subjects:
Online Access:http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.155.136
http://www.cs.technion.ac.il/~gabik/publications/StackScanning-OSR2009.pdf
id ftciteseerx:oai:CiteSeerX.psu:10.1.1.155.136
record_format openpolar
spelling ftciteseerx:oai:CiteSeerX.psu:10.1.1.155.136 2023-05-15T18:32:43+02:00 A Lock-Free, Concurrent, and Incremental Stack Scanning Mechanism for Garbage Collectors Gabriel Kliot Erez Petrank Bjarne Steensgaard The Pennsylvania State University CiteSeerX Archives application/pdf http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.155.136 http://www.cs.technion.ac.il/~gabik/publications/StackScanning-OSR2009.pdf en eng http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.155.136 http://www.cs.technion.ac.il/~gabik/publications/StackScanning-OSR2009.pdf Metadata may be used without restrictions as long as the oai identifier remains attached to it. http://www.cs.technion.ac.il/~gabik/publications/StackScanning-OSR2009.pdf Algorithms Design Performance Reliability Keywords Stack scanning Lock-free data structures Incremental and Concurrent garbage collection text ftciteseerx 2016-01-07T15:29:14Z Two major efficiency parameters for garbage collectors are the throughput overheads and the pause times that they introduce. Highly responsive systems need to use collectors with as short as possible pause times. Pause times have decreased significantly over the years, especially through the use of concurrent garbage collectors. For modern concurrent collectors, the longest pause is typically created by the need to atomically scan the runtime stack. All practical concurrent collectors that we are aware of must obtain a snapshot of the pointers on each thread’s runtime stack, in order to reclaim objects correctly. To further reduce the duration of the collector pauses, incremental stack scans were proposed. However, previous such methods employ locks to stop the mutator from accessing a stack frame while it is being scanned. Thus, these methods introduce potentially long and unpredictable pauses for a mutator thread. In this work we propose the first concurrent, incremental, and lock-free stack scanning mechanism for garbage collectors, that allows high responsiveness and support for programs that employ fine-grain synchronization to avoid locks. Our solution can be employed by all concurrent collectors that we are aware of, it is lock-free, it imposes a negligible overhead on the program execution, and it supports intra-stack references as found in languages like C#. Text The Pointers Unknown
institution Open Polar
collection Unknown
op_collection_id ftciteseerx
language English
topic Algorithms
Design
Performance
Reliability Keywords Stack scanning
Lock-free data structures
Incremental and Concurrent garbage collection
spellingShingle Algorithms
Design
Performance
Reliability Keywords Stack scanning
Lock-free data structures
Incremental and Concurrent garbage collection
Gabriel Kliot
Erez Petrank
Bjarne Steensgaard
A Lock-Free, Concurrent, and Incremental Stack Scanning Mechanism for Garbage Collectors
topic_facet Algorithms
Design
Performance
Reliability Keywords Stack scanning
Lock-free data structures
Incremental and Concurrent garbage collection
description Two major efficiency parameters for garbage collectors are the throughput overheads and the pause times that they introduce. Highly responsive systems need to use collectors with as short as possible pause times. Pause times have decreased significantly over the years, especially through the use of concurrent garbage collectors. For modern concurrent collectors, the longest pause is typically created by the need to atomically scan the runtime stack. All practical concurrent collectors that we are aware of must obtain a snapshot of the pointers on each thread’s runtime stack, in order to reclaim objects correctly. To further reduce the duration of the collector pauses, incremental stack scans were proposed. However, previous such methods employ locks to stop the mutator from accessing a stack frame while it is being scanned. Thus, these methods introduce potentially long and unpredictable pauses for a mutator thread. In this work we propose the first concurrent, incremental, and lock-free stack scanning mechanism for garbage collectors, that allows high responsiveness and support for programs that employ fine-grain synchronization to avoid locks. Our solution can be employed by all concurrent collectors that we are aware of, it is lock-free, it imposes a negligible overhead on the program execution, and it supports intra-stack references as found in languages like C#.
author2 The Pennsylvania State University CiteSeerX Archives
format Text
author Gabriel Kliot
Erez Petrank
Bjarne Steensgaard
author_facet Gabriel Kliot
Erez Petrank
Bjarne Steensgaard
author_sort Gabriel Kliot
title A Lock-Free, Concurrent, and Incremental Stack Scanning Mechanism for Garbage Collectors
title_short A Lock-Free, Concurrent, and Incremental Stack Scanning Mechanism for Garbage Collectors
title_full A Lock-Free, Concurrent, and Incremental Stack Scanning Mechanism for Garbage Collectors
title_fullStr A Lock-Free, Concurrent, and Incremental Stack Scanning Mechanism for Garbage Collectors
title_full_unstemmed A Lock-Free, Concurrent, and Incremental Stack Scanning Mechanism for Garbage Collectors
title_sort lock-free, concurrent, and incremental stack scanning mechanism for garbage collectors
url http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.155.136
http://www.cs.technion.ac.il/~gabik/publications/StackScanning-OSR2009.pdf
genre The Pointers
genre_facet The Pointers
op_source http://www.cs.technion.ac.il/~gabik/publications/StackScanning-OSR2009.pdf
op_relation http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.155.136
http://www.cs.technion.ac.il/~gabik/publications/StackScanning-OSR2009.pdf
op_rights Metadata may be used without restrictions as long as the oai identifier remains attached to it.
_version_ 1766216905178218496