Transactional Sapphire: Lessons in High Performance, On-the-fly Garbage Collection

Ugawa, Tomoharu and Ritson, Carl G. and Jones, Richard E. (2018) Transactional Sapphire: Lessons in High Performance, On-the-fly Garbage Collection. Transactions on Programming Languages and Systems, 40 (4). ISSN 0164-0925. E-ISSN 1558-4593. (In press) (Full text available)

PDF - Author's Accepted Manuscript

Creative Commons Licence
This work is licensed under a Creative Commons Attribution 4.0 International License.
Download (867kB) Preview
[img]
Preview
PDF - Pre-print

Creative Commons Licence
This work is licensed under a Creative Commons Attribution 4.0 International License.
Download (867kB) Preview
[img]
Preview
Official URL
https:toplas.acm.org

Abstract

Constructing a high-performance garbage collector is hard. Constructing a fully concurrent 'on-the-fly', compacting collector is much more so. We describe our experience of implementing the Sapphire algorithm as the first on-the-fly, parallel, replication copying, garbage collector for the Jikes RVM Java virtual machine. In part, we explain our innovations such as copying with hardware and software transactions, on-the-fly management of Java's reference types and simple, yet correct, lock-free management of volatile fields in a replicating collector. We fully evaluate, for the first time, and using realistic benchmarks, Sapphire's performance and suitability as a low latency collector. An important contribution of this work is a detailed description of our experience of building an on-the-fly copying collector for a complete JVM with some assurance that it is correct. A key aspect of this is model checking of critical components of this complicated and highly concurrent system.

Item Type: Article
Projects: Projects 0 not found.
Projects 0 not found.
[UNSPECIFIED] Information Processing Society of Japan
[UNSPECIFIED] Google Summer or Code
Uncontrolled keywords: Concurrent garbage collection, Replicating garbage collection, Parallel garbage collection, Transactional memory, Model checking, Reference objects, Java
Subjects: Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming, > QA76.76 Computer software
Divisions: Faculties > Sciences > School of Computing
Faculties > Sciences > School of Computing > Programming Languages and Systems Group
Depositing User: Richard Jones
Date Deposited: 05 Jun 2018 21:10 UTC
Last Modified: 03 Oct 2018 08:54 UTC
Resource URI: https://kar.kent.ac.uk/id/eprint/67207 (The current URI for this page, for reference purposes)
Ugawa, Tomoharu: https://orcid.org/0000-0002-3849-8639
Jones, Richard E.: https://orcid.org/0000-0002-8159-0297
  • Depositors only (login required):

Downloads

Downloads per month over past year