Michael De Rosa

Locally Distributed Predicates: A Technique for Distributed Programming Degree Type: Ph.D. in Computer Science
Advisor(s): Seth Goldstein, Peter Chan
Graduated: May 2010

Abstract:

New research in wireless networks, sensor networks, and modular robotics has spurred renewed interest in distributed programming techniques. Distributed programming is inherently more difficult than its single-threaded equivalent, due to the need for an executing thread of a distributed program located at one computation node to access state located at a different node. Traditionally, remote state has been aggregated or summarized using distributed snapshots or global predicate evaluation.

Traditional techniques for gathering state in distributed systems may be inappropriate for large-scale, sparsely-connected systems, as they are bandwidth intensive and scale poorly. We have identified a novel class of distributed predicates in such systems that we term locally distributed predicates (LDPs). These are predicates over the local neighborhood of a particular node, bounded to a finite number of communication hops. These locally distributed predicates allow a programmer to describe the state configuration of a bounded subgraph of a distributed system.

In this work, we formalize locally distributed predicates, and present two algorithms for detecting stable subclasses of LDPs. We then show how to perform common distributed detection tasks with LDPs, and how, with simple extensions, LDPs can serve as the foundation for a reactive programming language for distributed systems. We iteratively develop the language L, showing how the addition of various language features extends the expressiveness of the language. We present implementations of many distributed algorithms in L from multiple application domains. We then implement L twice, as a naive interpreted runtime, and as an efficient bytecode execution engine. Using our implementations, we proceed to characterize the performance and scalability for L, and its suitability for various distributed programming tasks.

Thesis Committee:
Seth Goldstein (Co-chair)
Peter Lee (Co-chair)
Garth Gibson
Maurice Herlihy (Brown University)

Jeannette Wing, Head, Computer Science Department
Randy Bryant, Dean, School of Computer Science

Keywords:
Distributed programming, modular robotics, distributed predicates, coordination languages, distributed snapshots

CMU-CS-10-118.pdf (2.12 MB) ( 136 pages)
Copyright Notice