Atomic Incremental Garbage Collection and Recovery for a Large Stable Heap

Abstract

A stable heap is storage that is managed automatically using garbage collection, manipulated using atomic transactions, and accessed using a uniform storage model. These features enhance reliability and simplify programming by preventing errors due to explicit deallocation, by masking failures and concurrency using transactions, and by eliminating the distinction between accessing temporary storage and permanent storage. Stable heap management is useful for programming languages for reliable distributed computing, programming languages with persistent storage, and object-oriented database systems. Many applications that could benefit from a stable heap (e.g., computer-aided design, computer-aided software engineering, and office information systems) require large amounts of storage, timely responses for transactions, and high availability. We present garbage collection and recovery algorithms for a stable heap implementation that meet these goals and are appropriate for stock hardware. The collector is incremental: it does not attempt to collect the whole heap at once. The collector is also atomic: it is coordinated with the recovery system to prevent problems when it moves and modifies objects. The time for recovery is independent of heap size, and can be shortened using checkpoints.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Feb 01, 1992
Accession Number
ADA256800

Entities

People

  • Elliot K. Kolodner

Organizations

  • Massachusetts Institute of Technology

Tags

Communities of Interest

  • Materials and Manufacturing Processes

DTIC Thesaurus Topics

  • Algorithms
  • Computations
  • Computer Programming
  • Computer Science
  • Computers
  • Databases
  • Distributed Computing
  • Electrical Engineering
  • Engineering
  • Fault Tolerance
  • Hash Tables
  • Language
  • Measurement
  • Operating Systems
  • Programming Languages
  • Side Effects
  • Space Objects

Fields of Study

  • Computer science
  • Engineering

Readers

  • Database Systems and Applications
  • Parallel and Distributed Computing.