Skip to main content
Kent Academic Repository

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

Ugawa, Tomoharu, Ritson, Carl G., Jones, Richard E. (2018) Transactional Sapphire: Lessons in High Performance, On-the-fly Garbage Collection. ACM Transactions on Programming Languages and Systems, 40 (4). Article Number 15. ISSN 0164-0925. E-ISSN 1558-4593. (doi:10.1145/3226225) (KAR id:67207)

PDF Author's Accepted Manuscript
Language: English
Download this file
[thumbnail of sapphire.pdf]
Request a format suitable for use with assistive technology e.g. a screenreader
PDF Pre-print
Language: English

Restricted to Repository staff only

Contact us about this Publication
[thumbnail of sapphire.pdf]
Official URL:


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
DOI/Identification number: 10.1145/3226225
Projects: Engineering and Physical Sciences Research Council, Engineering and Physical Sciences Research Council, Information Processing Society of Japan, 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: Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing
Funders: Engineering and Physical Sciences Research Council (
Organisations -1 not found.
Depositing User: Richard Jones
Date Deposited: 05 Jun 2018 21:10 UTC
Last Modified: 04 Mar 2024 15:23 UTC
Resource URI: (The current URI for this page, for reference purposes)

University of Kent Author Information

Ritson, Carl G..

Creator's ORCID:
CReDIT Contributor Roles:

Jones, Richard E..

Creator's ORCID:
CReDIT Contributor Roles:
  • Depositors only (login required):

Total unique views for this document in KAR since July 2020. For more details click on the image.