BuDDI: A Declarative Bloom Language for CALM Programming
Coordination protocols help programmers of distributed systems reason about the effects of transactions on the state of the system, but they're not cheap. Coordination protocols may involve multiple rounds of communication, which can hurt system responsiveness. There exist many efforts in distributed computing for managing the coordination-performance trade-off. More recent is a line of work that characterizes the class of workloads for which coordination is not necessary for consistency: namely, logically monotonic programs. In this paper, we present a case study of logical monotonicity in workloads typical to computational biology. We leverage the Bloom language to write efficient distributed programs, and compare their performance to equivalent programs written in UPC++, a popular language for writing distributed programs. Additionally, we leverage Bloom's analysis tools to identify points-of-coordination, and use our own experience using Bloom to recommend some higher-level abstractions for users without strong distributed computing backgrounds.
READ FULL TEXT