Scalable Publish-Subscribe in a Managed Framework

Abstract

Reliable multicast, publish-subscribe and group communication are highly effective in support of replication and event notification, and could serve as the enabling technologies for new types of applications that are both interactive and decentralized. To fully realize this vision, we need a high-performance, scalable, and reliable multicast engine as an integral part of the runtime environment. Since the majority of development today is done in managed, strongly typed environments such as Java or .NET, integration with such environments is of particular importance. What factors limit performance and scalability of a reliable multicast engine in a managed environment? What support from the runtime could improve performance, avoid instabilities, or make such systems easier to build? This paper sheds light on these questions by analyzing the performance of QuickSilver Scalable Multicast (QSM), a new multicast protocol and system built entirely in .NET. Memory-related overheads and scheduling-related phenomena are shown to dominate the behavior of our system. We discuss techniques that helped us alleviate some of these problems, and point to areas where better support from the runtime would be desirable.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Oct 01, 2006
Accession Number
ADA526387

Entities

People

  • Ken Birman
  • Krzysztof Ostrowski

Organizations

  • Cornell University

Tags

DTIC Thesaurus Topics

  • Air Traffic Control Systems
  • Communication Systems
  • Computer Programming
  • Computer Science
  • Computing System Architectures
  • Control Systems
  • Data Centers
  • Debugging
  • Environment
  • Hypervelocity Flow
  • Language
  • Local Area Networks
  • Multithreading
  • Packet Loss
  • Reliability
  • Scalability
  • Scheduling (Production)

Fields of Study

  • Computer science

Readers

  • Distributed Systems and Data Platform Development
  • Parallel and Distributed Computing.
  • Theoretical Analysis.