Real-time concurrent collection on stock multiprocessors
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Simple generational garbage collection and fast allocation
Software—Practice & Experience
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Real-time replication garbage collection
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
A concurrent copying garbage collector for languages that distinguish (im)mutable data
PPOPP '93 Proceedings of the fourth ACM SIGPLAN symposium on Principles and practice of parallel programming
The measured cost of conservative garbage collection
Software—Practice & Experience
Lightweight recoverable virtual memory
SOSP '93 Proceedings of the fourteenth ACM symposium on Operating systems principles
Guardians and Actions: Linguistic Support for Robust, Distributed Programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
List processing in real time on a serial computer
Communications of the ACM
On-the-fly garbage collection: an exercise in cooperation
Communications of the ACM
Uniprocessor Garbage Collection Techniques
IWMM '92 Proceedings of the International Workshop on Memory Management
Replication-Based Incremental Copying Collection
IWMM '92 Proceedings of the International Workshop on Memory Management
Concurrent Replication Garbage Collection: An Implementation Report
Concurrent Replication Garbage Collection: An Implementation Report
Venari/ML Interfaces and Examples
Venari/ML Interfaces and Examples
PS-algol: an algol with a persistent heap
ACM SIGPLAN Notices
Lightweight recoverable virtual memory
SOSP '93 Proceedings of the fourteenth ACM symposium on Operating systems principles
Lightweight recoverable virtual memory
ACM Transactions on Computer Systems (TOCS) - Special issue on operating systems principles
Concurrent replicating garbage collection
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Composing first-class transactions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Partitioned garbage collection of a large object store
SIGMOD '97 Proceedings of the 1997 ACM SIGMOD international conference on Management of data
Free transactions with Rio Vista
Proceedings of the sixteenth ACM symposium on Operating systems principles
A method for on-line reorganization of a database
IBM Systems Journal
Garbage collection for a client-server persistent object store
ACM Transactions on Computer Systems (TOCS)
ACM Transactions on Computer Systems (TOCS)
Efficient Incremental Garbage Collection for Client-Server Object Database Systems
VLDB '95 Proceedings of the 21th International Conference on Very Large Data Bases
Partitioned garbage collection of a large stable heap
IWOOOS '96 Proceedings of the 5th International Workshop on Object Orientation in Operating Systems (IWOOOS '96)
Log Compaction and Garbage Collection: What could they Bring to Each Other?
IWOOOS '95 Proceedings of the 4th International Workshop on Object-Orientation in Operating Systems
Integrating coherency and recoverability in distributed systems
OSDI '94 Proceedings of the 1st USENIX conference on Operating Systems Design and Implementation
Garbage collection and DSM consistency
OSDI '94 Proceedings of the 1st USENIX conference on Operating Systems Design and Implementation
A self-maintained memory module supporting DMM
CASES '07 Proceedings of the 2007 international conference on Compilers, architecture, and synthesis for embedded systems
Online reorganization of databases
ACM Computing Surveys (CSUR)
Persistent Oberon: a programming language with integrated persistence
APLAS'07 Proceedings of the 5th Asian conference on Programming languages and systems
NV-Heaps: making persistent objects fast and safe with next-generation, non-volatile memories
Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systems
ASPLOS XVII Proceedings of the seventeenth international conference on Architectural Support for Programming Languages and Operating Systems
Proceedings of the 8th ACM European Conference on Computer Systems
Hi-index | 0.00 |
We describe a replicating garbage collector for a persistent heap. The garbage collector cooperates with a transaction manager to provide safe and efficient transactional storage management. Clients read and write the heap in primary memory and can commit or abort their write operations. When write operations are committed they are preserved in stable storage and survive system failures. Clients can freely access the heap during garbage collection because the collector concurrently builds a compact replica of the heap. A log captures client write operations and is used to support both the transaction manager and the replicating garbage collector.Our implementation is the first to provide concurrent and compacting garbage collection of a persistent heap. Measurements show that concurrent replicating collection produces significantly shorter pause times than stop-and-copy collection. For small transactions, throughput is limited by the logging bandwidth of the underlying log manager. The results suggest that replicating garbage collection offers a flexible and efficient way to provide automatic storage management in transaction systems, object-oriented databases and persistent programming environments.