PaPEC '14Pub Date : 2014-04-13DOI: 10.1145/2596631.2596633
R. Brown, S. Cribbs, Christopher S. Meiklejohn, Sam Elliott
{"title":"Riak DT map: a composable, convergent replicated dictionary","authors":"R. Brown, S. Cribbs, Christopher S. Meiklejohn, Sam Elliott","doi":"10.1145/2596631.2596633","DOIUrl":"https://doi.org/10.1145/2596631.2596633","url":null,"abstract":"Conflict-Free Replicated Data-Types (CRDTs) [6] provide greater safety properties to eventually-consistent distributed systems without requiring synchronization. CRDTs ensure that concurrent, uncoordinated updates have deterministic outcomes via the properties of bounded join-semilattices.\u0000 We discuss the design of a new convergent (state-based) replicated data-type, the Map, as implemented by the Riak DT library [4] and the Riak data store [3]. Like traditional dictionary data structures, the Map associates keys with values, and provides operations to add, remove, and mutate entries. Unlike traditional dictionaries, all values in the Map data structure are also state-based CRDTs and updates to embedded values preserve their convergence semantics via lattice inflations [1] that propagate upward to the top-level. Updates to the Map and its embedded values can also be applied atomically in batches. Metadata required for ensuring convergence is minimized in a manner similar to the optimized OR-set [5].\u0000 This design allows greater flexibility to application developers working with semi-structured data, while removing the need for the developer to design custom conflict-resolution routines for each class of application data. We also discuss the experimental validation of the data-type using stateful property-based tests with QuickCheck [2].","PeriodicalId":354287,"journal":{"name":"PaPEC '14","volume":"2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-04-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117149695","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
PaPEC '14Pub Date : 2014-04-13DOI: 10.1145/2596631.2596637
P. Wojciechowski, Konrad Siek
{"title":"Having your cake and eating it too: combining strong and eventual consistency","authors":"P. Wojciechowski, Konrad Siek","doi":"10.1145/2596631.2596637","DOIUrl":"https://doi.org/10.1145/2596631.2596637","url":null,"abstract":"Given the limitations imposed on distributed systems that are necessary to maintain strong consistency guarantees there is a growing interest in relaxed consistency models. Such models are often sufficient for particular applications, but allow more freedom to improve scalability and availability. Eventual consistency is a particularly useful approach, where the correct state spreads throughout the system over time, so that at any point any element of the system may be inconsistent, but all elements will eventually converge upon a consistent state. On the other hand relaxing properties may be unacceptable in the general case: a slightly stale shopping cart is one thing, but inconsistent payment processing is quite another.\u0000 In this paper we try to balance strong and eventual consistency by proposing a general-purpose pessimistic distributed transactional memory that allows eventually consistent transactions to run alongside consistent ones. While the former maintain read-isolation (i.e., read from a consistent snapshot), they do not interfere with the latter's safety properties. The relaxed-consistency transactions are later followed by their consistent counterpart so that the user view and global state eventually agree. Our contribution is to show that we can significantly relax synchronization (to the point of eliminating it completely from eventually consistent transactions) while retaining useful properties, but without imposing additional constraints about system architecture or data operations, common to other relaxed consistency approaches. All this, without affecting those transactions that execute in consistent mode.","PeriodicalId":354287,"journal":{"name":"PaPEC '14","volume":"367 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-04-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121408457","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
PaPEC '14Pub Date : 2014-04-13DOI: 10.1145/2596631.2596632
Carlos Baquero, Paulo Sérgio Almeida, Ali Shoker
{"title":"Making operation-based CRDTs operation-based","authors":"Carlos Baquero, Paulo Sérgio Almeida, Ali Shoker","doi":"10.1145/2596631.2596632","DOIUrl":"https://doi.org/10.1145/2596631.2596632","url":null,"abstract":"Conflict-free Replicated Datatypes can simplify the design of predictable eventual consistency. They can be classified into state-based or operation-based. Operation-based approaches have the potential for allowing compact designs in both the sent message and the object state size, but current approaches are still far from this objective. Here we explore the design space for operation-based solutions, and we leverage the interaction with the middleware by offering a technique that delivers very compact solutions, while only broadcasting operation names and arguments.","PeriodicalId":354287,"journal":{"name":"PaPEC '14","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-04-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128447741","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
PaPEC '14Pub Date : 2014-04-13DOI: 10.1145/2596631.2596634
Paulo Sérgio Almeida, Ali Shoker, Carlos Baquero
{"title":"Efficient state-based CRDTs by decomposition","authors":"Paulo Sérgio Almeida, Ali Shoker, Carlos Baquero","doi":"10.1145/2596631.2596634","DOIUrl":"https://doi.org/10.1145/2596631.2596634","url":null,"abstract":"Eventual consistency is a relaxed consistency model used in large-scale distributed systems that seek better availability when consistency can be delayed. CRDTs are distributed data types that make eventual consistency of a distributed object possible and non ad-hoc. Specifically, state-based CRDTs achieve this through shipping the entire replica state that is, eventually, merged to other replicas ensuring convergence. This imposes a large communication overhead when the replica size or the number of replicas gets larger. In this work, we introduce a decomposable version of state-based CRDTs, called Delta State-based CRDTs (Δ-CRDT). A Δ-CRDT is viewed as a join of multiple fine-grained CRDTs of the same type, called deltas (Δ). The deltas are produced by applying Δ-mutators, on a replica state, which are modified versions of the original CRDT mutators. This makes it possible to ship small deltas (or batches) instead of shipping the entire state. The challenges are to make the join of deltas equivalent to the join of the entire object in classical state-based CRDTs, and to find a way to derive the Δ-mutators. We address this challenge in this work, and we explore the minimal requirements that a communication algorithm must offer according to the guarantees provided by the underlying messaging middleware.","PeriodicalId":354287,"journal":{"name":"PaPEC '14","volume":"13 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-04-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128648889","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
PaPEC '14Pub Date : 2014-04-13DOI: 10.1145/2596631.2596636
Mehdi Ahmed-Nacer, Pascal Urso, Valter Balegas, Nuno M. Preguiça
{"title":"Merging OT and CRDT algorithms","authors":"Mehdi Ahmed-Nacer, Pascal Urso, Valter Balegas, Nuno M. Preguiça","doi":"10.1145/2596631.2596636","DOIUrl":"https://doi.org/10.1145/2596631.2596636","url":null,"abstract":"Nowadays, a large number of collaborative editing applications have been developed. Some of them are deployed on the cloud such as Google Drive and Microsoft Office at SkyDrive. Massively used editing systems make use of operational transformation (OT), a traditional replication mechanism for concurrent document editing. Such algorithms do not scale well in peer-to-peer environments with dynamic groups. Recently, Commutative Replicated Data Types (CRDTs) were introduced as a new class of replication mechanisms whose concurrent operations are designed to be natively commutative. They ensure consistency of highly dynamic contents on peer-to-peer networks.\u0000 Through this paper, we propose an architecture to take advantage of both approaches -- OT and CRDT -- and to improve the performance of collaborative editing applications. We merge both algorithms on the proposed architecture and we study their suitability.","PeriodicalId":354287,"journal":{"name":"PaPEC '14","volume":"72 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-04-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121606448","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
PaPEC '14Pub Date : 2014-04-13DOI: 10.1145/2596631.2596640
Tim Coppieters, Laure Philips, W. Meuter, T. V. Cutsem
{"title":"An open implementation of cloud types for the web","authors":"Tim Coppieters, Laure Philips, W. Meuter, T. V. Cutsem","doi":"10.1145/2596631.2596640","DOIUrl":"https://doi.org/10.1145/2596631.2596640","url":null,"abstract":"Cloud Types is an interesting EC model that closely integrates its consistency model with the programming language, rendering EC programming more feasible for the average programmer. We have created an open implementation of the model in a JavaScript end-to-end implementation that can act both as an experimental platform for researchers and as an open EC model for the web. Furthermore we are experimenting with additions to the model such as an RDBM-like authorization system in combination with Views in order to give more control over the state and to allow partitioning.","PeriodicalId":354287,"journal":{"name":"PaPEC '14","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-04-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122512697","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
PaPEC '14Pub Date : 2014-04-13DOI: 10.1145/2596631.2596642
Sylvain Lefebvre, Sathiya Prabhu Kumar, Raja Chiky
{"title":"Simizer: evaluating consistency trade offs through simulation","authors":"Sylvain Lefebvre, Sathiya Prabhu Kumar, Raja Chiky","doi":"10.1145/2596631.2596642","DOIUrl":"https://doi.org/10.1145/2596631.2596642","url":null,"abstract":"Eventually consistent data stores are a widely used solution to the scalability issues arising for modern applications and web based services. Due to the scale of such services, it is necessary to be able to simulate such infrastructures and application protocols in order to assess the correctness and performance of the system over realistic workloads at development time. This paper describes Simizer, a new cloud computing platform simulator focusing on distributed services protocol performance evaluation. Usability of this simulator is shown through a sample implementation of an optimistic replication policy for a distributed storage service.","PeriodicalId":354287,"journal":{"name":"PaPEC '14","volume":"56 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-04-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125086397","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
PaPEC '14Pub Date : 2014-04-13DOI: 10.1145/2596631.2596639
K. Iwanicki
{"title":"Beyond replicated storage: eventually-consistent distributed data structures","authors":"K. Iwanicki","doi":"10.1145/2596631.2596639","DOIUrl":"https://doi.org/10.1145/2596631.2596639","url":null,"abstract":"While our understanding of eventual consistency for replicated data has improved considerably over the past few years, relatively little work focused on eventually-consistent distributed data structures. By revisiting PL-Gossip, our self-managed, decentralized algorithm for maintaining cluster hierarchies in wireless sensor networks, this paper illustrates sample problems one is likely to encounter when dealing with such structures. Given the growing interest in analyzing huge, dynamic, inter-dependent data sets, we believe that the paper will inspire research to facilitate understanding and devising eventually-consistent distributed data structures.","PeriodicalId":354287,"journal":{"name":"PaPEC '14","volume":"47 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-04-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127581223","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
PaPEC '14Pub Date : 2014-04-13DOI: 10.1145/2596631.2596638
B. Ozkan, Erdal Mutlu, S. Tasiran
{"title":"Towards verifying eventually consistent applications","authors":"B. Ozkan, Erdal Mutlu, S. Tasiran","doi":"10.1145/2596631.2596638","DOIUrl":"https://doi.org/10.1145/2596631.2596638","url":null,"abstract":"Modern cloud and distributed systems depend heavily on replication of large-scale databases to guarantee properties like high availability, scalability and fault tolerance. These replicas are maintained in geographically distant locations to be able to serve clients from different regions without any loss of performance. Ideally, these systems require to achieve immediate availability while preserving strong consistency in the presence of network partitions. But unfortunately, the CAP theorem [1] proves that it is impossible to have all these properties together in a distributed system. For this reason, architects of current distributed systems frequently omit strong consistency guarantees in favor of weaker forms of consistency, commonly called eventual consistency[2].","PeriodicalId":354287,"journal":{"name":"PaPEC '14","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-04-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128150636","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
PaPEC '14Pub Date : 2014-04-13DOI: 10.1145/2596631.2596635
Christopher S. Meiklejohn
{"title":"On the composability of the Riak DT map: expanding from embedded to multi-key structures","authors":"Christopher S. Meiklejohn","doi":"10.1145/2596631.2596635","DOIUrl":"https://doi.org/10.1145/2596631.2596635","url":null,"abstract":"The Riak DT library [2] provides a composable, convergent replicated dictionary called the Riak DT map, designed for use in the Riak [1] replicated data store. This data type provides the ability for the composition of conflict-free replicated data types (CRDT) [7] through embedding.\u0000 Composition by embedding works well when the total object size of the composed CRDTs is small, however suffers a performance penalty as object size increases. The root of this problem is based in how replication is achieved in the Riak data store using Erlang distribution. [4]\u0000 We propose a solution for providing an alternative composition mechanism, composition by reference, which provides support for arbitrarily large objects while ensuring predictable performance and high availability. We explore the use of this new composition mechanism by examining a common use case for the Riak data store.","PeriodicalId":354287,"journal":{"name":"PaPEC '14","volume":"97 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-04-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116596681","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}