Logic and Lattices for Distributed Programming

Abstract

In recent years there has been interest in achieving application level consistency criteria without the latency and availability costs of strongly consistent storage infrastructure. A standard technique is to adopt a vocabulary of commutative operations this avoids the risk of inconsistency due to message reordering. A more powerful approach was recently captured by the CALM theorem, which proves that logically monotonic programs are guaranteed to be eventually consistent. In logic languages such as Bloom, CALM analysis can automatically verify that program modules achieve consistency without coordination. In this paper we present BloomL, an extension to Bloom that takes inspiration from both these traditions. BloomL generalizes Bloom to support lattices and extends the power of CALM analysis to whole programs containing arbitrary lattices. We show how the Bloom interpreter can be generalized to support efficient evaluation of lattice-based code using well-known strategies from logic programming. Finally we use BloomL to develop several practical distributed programs including a key-value store similar to Amazon Dynamo and show how BloomL encourages the safe composition of small, easy-to-analyze lattices into larger programs.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Jun 22, 2012
Accession Number
ADA563903

Entities

People

  • David Maier
  • Joseph M. Hellerstein
  • Neil Conway
  • Peter Alvaro
  • William R. Marczak

Organizations

  • University of California, Berkeley

Tags

Communities of Interest

  • Energy and Power Technologies

DTIC Thesaurus Topics

  • Availability
  • Case Studies
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Confluence
  • Consistency
  • Data Management
  • Databases
  • Electronic Commerce
  • Engineering
  • Language
  • Monotone Functions
  • Operating Systems
  • Standards
  • Test And Evaluation

Fields of Study

  • Computer science

Readers

  • Applied Combinatorial Optimization and Logic Circuit Design.
  • Linear Algebra
  • Software Engineering.