The Escrow transactional method
ACM Transactions on Database Systems (TODS)
A generalization of the differential approach to recursive query evaluation
Journal of Logic Programming
Commutativity-Based Concurrency Control for Abstract Data Types
IEEE Transactions on Computers
Towards a theory of declarative knowledge
Foundations of deductive databases and logic programming
Concurrency control in groupware systems
SIGMOD '89 Proceedings of the 1989 ACM SIGMOD international conference on Management of data
Using semantic knowledge of transactions to increase concurrency
ACM Transactions on Database Systems (TODS)
The well-founded semantics for general logic programs
Journal of the ACM (JACM)
Monotonic aggregation in deductive databases
PODS '92 Proceedings of the eleventh ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Fixpoint iteration with subsumption in deductive databases
Journal of Intelligent Information Systems - Special issue: deductive and object-oriented databases
Managing update conflicts in Bayou, a weakly connected replicated storage system
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
ACM Transactions on Computer-Human Interaction (TOCHI)
ACM Transactions on Computer Systems (TOCS)
Operational transformation in real-time group editors: issues, algorithms, and achievements
CSCW '98 Proceedings of the 1998 ACM conference on Computer supported cooperative work
Modular stratification and magic sets for DATALOG programs with negation
PODS '90 Proceedings of the ninth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Using semantic knowledge for transaction processing in a distributed database
ACM Transactions on Database Systems (TODS)
The serializability of concurrent database updates
Journal of the ACM (JACM)
Weighted voting for replicated data
SOSP '79 Proceedings of the seventh ACM symposium on Operating systems principles
Resolving file conflicts in the Ficus file system
USTC'94 Proceedings of the USENIX Summer 1994 Technical Conference on USENIX Summer 1994 Technical Conference - Volume 1
Dynamo: amazon's highly available key-value store
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
Detection of Mutual Inconsistency in Distributed Systems
IEEE Transactions on Software Engineering
Communications of the ACM - Rural engineering development
Toward a cloud computing research agenda
ACM SIGACT News
Relational transducers for declarative networking
Proceedings of the thirtieth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
Don't settle for eventual: scalable causal consistency for wide-area storage with COPS
SOSP '11 Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles
Conflict-free replicated data types
SSS'11 Proceedings of the 13th international conference on Stabilization, safety, and security of distributed systems
Dedalus: datalog in time and space
Datalog'10 Proceedings of the First international conference on Datalog Reloaded
Eventually consistent transactions
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
BloomUnit: declarative testing for distributed programs
DBTest '12 Proceedings of the Fifth International Workshop on Testing Database Systems
Cloud types for eventual consistency
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Confluence analysis for distributed programs: a model-theoretic approach
Datalog 2.0'12 Proceedings of the Second international conference on Datalog in Academia and Industry
Distributed programming and consistency: principles and practice
Proceedings of the Third ACM Symposium on Cloud Computing
LVars: lattice-based data structures for deterministic parallelism
Proceedings of the 2nd ACM SIGPLAN workshop on Functional high-performance computing
Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles
ACM SIGOPS 24th Symposium on Operating Systems Principles
Naiad: a timely dataflow system
Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles
Proceedings of the 4th annual Symposium on Cloud Computing
Freeze after writing: quasi-deterministic parallel programming with LVars
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Replicated data types: specification, verification, optimality
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Hi-index | 0.00 |
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. Another 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 programs achieve consistency without coordination. In this paper we present BloomL, an extension to Bloom that takes inspiration from both of 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.