The Sapphire fully concurrent (on-the-fly) replicating garbage collector
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
docker
jikesrvm
models
test-thread
LICENSE
README

README

TRANSACTIONAL SAPPHIRE

Tomoharu Ugawa, Kochi University of Technology, Japan
Carl Ritson, University of Kent, UK
Richard Jones, University of Kent, UK

This is an implementation of the Sapphire GC algorithm [1,2]. It is the first
on-the-fly, parallel, replication copying, garbage collector for the Jikes RVM
Java virtual machine. The implementation provides innovations such as copying 
with hardware or 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. 

The jikesrvm directory provides the source code for the Jikes RVM including the
Sapphire GC.

The models directory above provides SPIN models [3] of critical components of
this complicated and highly concurrent system.

[1] Richard L. Hudson and J. Eliot B. Moss. 2003. Sapphire: Copying Garbage
    Collection Without Stopping the World.  Concurrency and Computation:
    Practice and Experience 15, 3–5 (2003), 223–261.
    https://doi.org/10.1002/cpe.712

[2] Transactional Sapphire: Lessons in High Performance, On-the-fly Garbage 
    Collection. Tomoharu Ugawa, Carl Ritson and Richard Jones [in submission]
    
[3] G. J. Holzmann. 2004. The SPIN Model Checker: Primer and Reference Manual. 
    Addison-Wesley.