The Declarative Imperative: Experiences and Conjectures in Distributed Logic (2010)

Summary. With (a strict interpretation of) Moore's Law in decline and an overabundance of compute resources in the cloud, performance necessitates parallelism. The rub? Parallel programming is difficult. Contemporaneously, Datalog (and variants) have proven effective in an increasing number of domains from networking to distributed systems. Better yet, declarative logic programming allows for programs to be built with orders of magnitude less code and permits formal reasoning. In this invited paper, Joe discusses his experiences with distributed declarative programming and conjectures some deep connections between logic and distributed systems.

Joe's group has explored many distributed Datalog variants, the latest of which is Dedalus. Dedalus includes notions of time: both intra-node atomicity and sequencing and inter-node causality. Every table in Dedalus includes a timestamp in its rightmost column. Dedalus' rules are characterized by how they interact with these timestamps:

Joe's group's experience with distributed logic programming lead to the following conclusions:

The experience also leads to a number of conjectures: