Garbage collection of timestamped data in Stampede

  • Authors:
  • Rishiyur S. Nikhil;Umakishore Ramachandran

  • Affiliations:
  • Compaq Computer Corporation, Cambridge Research Laboratory, One Kendall Square, Bldg. 700, Cambridge MA;College of Computing, 801 Atlantic Drive, Georgia Inst. of Technology, Atlanta GA

  • Venue:
  • Proceedings of the nineteenth annual ACM symposium on Principles of distributed computing
  • Year:
  • 2000

Quantified Score

Hi-index 0.00

Visualization

Abstract

Stampede is a parallel programming system to facilitate the programming of interactive multimedia applications on clusters of SMPs.In a Stampede application, a variable number of threads can communicate data items to each other via channels, which are distributed, synchronized data structures containing timestamped data such as images from a video camera. Channels are not queue-like: threads may produce and consume items out of timestamp order; they may produce and consume items sparsely (skipping timestamps), and multiple threads (including newly created threads) may consume an item in a channel. These flexibilities are required due to the complex dynamic parallel structure of applications, to support increased parallelism, and because of real-time requirements.Under these circumstances, a key issue is the “garbage collection condition”: When can an item in a channel be garbage collected?In this paper we specify precisely Stampede's semantics concerning timestamps, and we describe two associated garbage collection conditions& a weak condition, and a more expensive but stronger condition. We then describe a distributed, concurrent algorithm that implements these two GC conditions. We present performance numbers that show little or no application-level performance penalty to using this algorithm for aiding automatic garbage collection in a cluster. We conclude with some remarks about the implementation in the Stampede system.