BOOM: Generating Big Clouds from Small Programs
Peter Alvaro, Tyson Condie, Neil Conway, Joseph M. Hellerstein, William Marczak and Ras Bodik
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 Berkeley on the declarative specification of network protocols[1,2,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.
- Boon Thau Loo, Tyson Condie, Minos Garofalakis, David A. Gay, Joseph M. Hellerstein, Petros Maniatis, Raghu Ramakrishnan, Timothy Roscoe and Ion Stoica. "Declarative Networking: Language, Execution and Optimization." In ACM SIGMOD, 2006.
- David Chu, Lucian Popa, Arsalan Tavakoli, Joseph M. Hellerstein, Philip Levis, Scott Shenker, and Ion Stoica. "The Design and Implementation of A Declarative Sensor Network System." In ACM SenSys, 2007.
- BOOM: Data-Centric Programming in the Datacenter. UC Berkeley EECS Technical Report No. UCB/EECS-2009-113 August 11, 2009