Skip to content

Dev Roadmap Milestones

jhellerstein edited this page Dec 14, 2011 · 2 revisions

Bloom Development Milestones, 2012. Rev 0.

Mainline Bloom Runtime Environments

Lead: Srinivasan

  1. Completion of Bud v0.1.0. Target: SW release 2/1

    • current push-based implementation cleaned up, including docs, sandbox and benchmarks.
    • address NTT benchmark concerns
    • Note: I had originally thought that I'd optimize the current design, but I think it must be done in the new setting.
  2. Design/prototype of new architecture for Bloom 1.0. Target: SW release 6/1

    • Restructured Bloom language as a standalone piece, not a DSL embedded in a host language. Will still follow Ruby conciseness.
      • Typed schemas for primitives, but "Object" type allowed. Explicit casting will of course have to be allowed.
      • type and monotonicity annotations for external and built-in functions
      • expression language.
      • better module composition.
    • multi-language target design, with well-defined Bloom-level keywords/functions and host-language access to collections.
      • first prototype target to Scala, just so that I am not spending inordinate amounts of time with two different language environments.
      • concentration on getting the design of Joins correct and performant
    • compiler written in Java/Scala.
    • rigorous performance goals and testing
  3. Second language target for Bloom 1.1. Target: SW release 11/1

  • Javascript backend, including the equivalent of the sandbox bundled as a package.
  • One option is to have someone from IIT here do an internship and add stuff to the package.

CALM Program Analysis Toolkit.

Lead: Alvaro. Target: SW release and research paper, 3/1

  1. Visual debugger

    • visual dataflow diagrams with monotonicity analysis (points of order)
    • visualization of trace-driven flow weights to drive program variants
    • visual timestep debugging
  2. Code synthesis

    • augmentation of programs with customized coordination logic for points of order that minimizes the participants in the coordination
    • augmentation fo programs with taint-tracking logic and optional "boundary memory" for flows lacking CALM coordination
  3. Case study

    • configurable-consistency key-value store or an HDFS-style filesystem

Bloom Core

Lead: Alvaro. Target: SW Release 2/1

Replaces bud sandbox with tested, documented suite of core distributed systems libraries. Building off work done in the Fall 2011 Program the Cloud course.

  • delivery protocols
    • best-effort
    • reliable
    • ordered
    • reordered
    • drop-inducing
  • membership
  • multicast
  • alarms
  • heartbeats
  • counters
  • queues
  • voting
  • vector clocks
  • leader election
  • consensus protocols
    • 2-phase commit
    • multipaxos
  • concurrency protocols
    • 2-phase locking
    • timestamp
  • read-write quora with session guarantees
    • read-your-writes
    • monotonic reads
    • majority

Lattice-Enabled Bloom

Lead: Conway. Target: SW code freeze and research paper, 2/1.

  1. Language and runtime
  • Bud extensions to support arbitrary lattices and morphisms between them
  • Suite of core lattice types including Sets, MaxInts, BooleanLattices and Vectors
  • morphisms between key lattice types
  1. CALM analysis via lattices
  • overcome specific roadblocks in logic-based CALM analysis
    • aggregate threshhold logic
    • shopping carts example
  • revisit Bloom Core with lattices
    • simplify, analyze, optimize

Haskell Bloom Runtime

Lead: Marczak. Target: unknown

Experimental runtime for lattice-enabled Bloom using rich Haskell type system and lazy evaluation.