BOOM: Generating Big Clouds from Small Programs
Peter Alvaro, Ashima Atul, David Chiyuan Chu, Tyson Condie, Neil Conway, Joseph M. Hellerstein, Russell C Sears and Matei Zaharia
Cloud computing requires the construction of distributed systems that operate at enormous scale. Traditional programming tools provide inadequate support for this task, because they force developers to operate at the wrong level of abstraction. Distributed protocols must be specified in exhaustive detail, making them expensive to write and difficult to change. Failure handling is ad-hoc and error-prone, monitoring and status visualization must be written by hand, and algorithms for common tasks like distributed consensus and synchronization must be developed from scratch, rather than written once and reused. As a result, building scalable distributed systems remains labor-intensive and error-prone, and the resulting systems are expensive, difficult to reason about, and hard to modify.
To address these problems, we leverage prior work at UC Berkeley on the declarative specification of network protocols [1-3]. We plan to extend these techniques to the specification of distributed protocols in general. The goal is to allow the essence of a distributed system to be concisely specified in a programmer-friendly, declarative language. In this form, the distributed protocol is easy to understand, reason about, and modify. The language runtime is responsible for producing an efficient distributed implementation from this high-level specification.
To demonstrate that this approach is practical, we intend to use this system to implement a set of modern facilities in cloud computing infrastructure, including GFS, Map/Reduce, and Chubby, and then allow these components to be reconfigured and recomposed to enable new distributed systems to be easily constructed at low cost. This exemplifies the goal of the BOOM (Berkeley Orders Of Magnitude) project: to enable the construction of distributed systems that are orders of magnitude more scalable, implemented in orders of magnitude less code.
- B. T. Loo, T. Condie, M. Garofalakis, D. A. Gay, J. M. Hellerstein, P. Maniatis, R. Ramakrishnan, T. Roscoe, and I. Stoica, "Declarative Networking: Language, Execution and Optimization," ACM SIGMOD, 2006.
- D. Chu, L. Popa, A. Tavakoli, J. M. Hellerstein, P. Levis, S. Shenker, and I. Stoica, "The Design and Implementation of A Declarative Sensor Network System," ACM SenSys, 2007.