Stressed by Distributed Programming? Well, CALM Down.
in Consistency Analysis in Bloom: a CALM and Collected Approach Peter Alvaro, Neil Conway, Joseph M. Hellerstein, William R. Marczak of UC, Berkeley say
Distributed programming has become a topic of widespread interest, and many programmers now wrestle with tradeoffs between data consistency, availability and latency. Distributed transactions are often rejected as an undesirable tradeoffs today, but in the absence of transactions there are few concrete principles or tools to help programmers design and verify the correctness of their applications.
We address this situation with the CALM principle, which connects the idea of distributed consistency to program tests for logical monotonicity. We then introduce Bloom, a distributed programming language that is amenable to high-level consistency analysis and encourages order-insensitive programming. We present a prototype implementation of Bloom as a domain-specific language in Ruby. We also propose a program analysis technique that identifies points of order in Bloom programs: code locations where programmers may need to inject coordination logic to ensure consistency. We illustrate these ideas with two case studies: a simple key-value store and a distributed shopping cart service.
- F*: A Verifying ML Compiler for Distributed Programming
- Top General: Despite ‘Pockets of Violence,’ Haiti Relatively Calm
- Thync, a Wearable That Zaps Your Brain To Calm You Down or Amp You Up
- Is Transactional Programming Actually Easier?
- Ask Slashdot: Correlation Between Text Editor and Programming Language?