From Doom and Gloom to BOOM and Bloom

From Doom and Gloom to BOOM and Bloom

Cloud Programming: From Doom and Gloom to BOOM and Bloom Peter Alvaro, Neil Conway Faculty Recs: Joseph M. Hellerstein, RasDslav Bodik Collaborators: Tyson Condie, Bill Marczak, Rusty Sears UC Berkeley WriDng reliable, scalable distributed soLware remains extremely difficult Three Hardware Trends 1. Cloud Compung 2. Powerful, heterogeneous mobile clients 3. Many-Core ImplicaDons 1. Nearly every non-trivial program will be physically distributed 2. Increasingly heterogeneous clients, unpredictable cloud environments 3. Distributed programming will no longer be confined to highly-trained experts The Anatomy of a Distributed Program • In a typical distributed program, we see: – CommunicaDon, messaging, serializaDon – Event handling – Concurrency, coordinaon – Explicit fault tolerance, ad-hoc error handling • What are we looking for? – Correctness (safety, liveness, …) – Conformance to specificaDon – High-level performance properDes; behavior under network edge-cases Data-Centric Programming • Goal: Fundamentally raise the level of abstracon for distributed programming • MapReduce: data-centric batch programming – Programmers apply transforma-ons to data sets • Can we apply a data-centric approach to distributed programming in general? Bloom and BOOM 1. Bloom: A high-level, data-centric language designed for distributed compuDng 2. BOOM: Berkeley Orders of Magnitude – OOM bigger systems in OOM less code – Use Bloom to build real distributed systems Agenda: FoundaDon • Begin with a precise formal semanDcs – Datalog w/ negaDon, state update, and non- determinism • Include primiDves for distributed computaDon • Enable formal methods for distributed programming – Model checking, theorem proving, … Agenda: Engineering 1. Efficient, low-latency dataflow engine (C4) 2. Network-oriented conDnuous program opmizaon – AutomaDcally co-locate code and data – Adapt to current network and client condiDons – OpDmize for both power and performance – Leverage formal semanDcs: how does distribuDon change program behavior? Agenda: Language Design • How to expose these concepts to developers? – What are the right developer abstracDons for common distributed programs? • Bloom language design goals: 1. Familiar syntax (list comprehensions, callbacks) 2. IntegraDon with imperaDve languages 3. Modularity, encapsulaDon, and composiDon Agenda: ValidaDon • How do we know that we’re solving real problems? – Build real systems • IniDal work: BOOM AnalyAcs – Hadoop + HDFS in distributed logic • Goal: Use Bloom to build a complete cloud compuDng stack – Google in 10KLOC? Thank you! .

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    12 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us