Pascal Grosch, Roman Krafft, Marcel Wölki, Annette Bieniusa
{"title":"AutoCouch","authors":"Pascal Grosch, Roman Krafft, Marcel Wölki, Annette Bieniusa","doi":"10.1145/3380787.3393679","DOIUrl":"https://doi.org/10.1145/3380787.3393679","url":null,"abstract":"Most web-based applications require an undisrupted connection to some kind of server for updating the current application state and propagating changes made locally at the clients. By their very nature, CRDTs provide the right semantics for these applications as they resolve conflicts after concurrent state changes from different users or when a user reconnects after some period of unavailability. Although the JSON format is often used to summarize and represent the complete state of web applications, there is currently - to our knowledge - no generic integrated implementation of a JSON CRDT framework that supports the standard clientserver setup for web apps. In this paper, we present the AutoCouch framework which combines the benefits of the Automerge CRDT library with the widely used CouchDB framework. It provides an out-ofthe-box use of a conflict-free JSON document that is replicated on server side and in browsers on client side, while requiring few adaptations to provide smooth online/offline transitions for web apps.","PeriodicalId":239598,"journal":{"name":"Proceedings of the 7thWorkshop on Principles and Practice of Consistency for Distributed Data","volume":"145 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-04-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121965538","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}
{"title":"Orion","authors":"Diptanshu Kakwani, R. Nasre","doi":"10.1145/3380787.3393676","DOIUrl":"https://doi.org/10.1145/3380787.3393676","url":null,"abstract":"This paper presents a causally consistent key-value store Orion, which uses a novel protocol for Read Only Transactions (ROT). Unlike most of the existing protocols, Orion uses only one round of communication in the best case, and not more than two rounds in the worst case. We provide a theoretical bound on its communication complexity and qualitatively compare it with recent ROT protocols. We also quantitatively compare Orion with state-of-the-art protocol CausalSpartanX and illustrate that Orion achieves up to 1.7x higher throughput and generates 10x fewer messages on widely-used YCSB workload.","PeriodicalId":239598,"journal":{"name":"Proceedings of the 7thWorkshop on Principles and Practice of Consistency for Distributed Data","volume":"337 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-04-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124740205","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}
{"title":"Chronofold","authors":"V. Grishchenko, Mikhail Patrakeev","doi":"10.1145/3380787.3393680","DOIUrl":"https://doi.org/10.1145/3380787.3393680","url":null,"abstract":"Chronofold is a replicated data structure for versioned text, based on the extended Causal Tree model. Past models of this kind either retrofitted local linear orders to a distributed system (the OT approach) or employed distributed data models locally (the CRDT approach). That caused either extreme fragility in a distributed setting or egregious overheads in local use. Overall, that local/distributed impedance mismatch is cognitively taxing and causes lots of complexity. We solve that by using subjective linear orders locally at each replica, while inter-replica communication uses a distributed model. A separate translation layer insulates local data structures from the distributed environment. We modify the Lamport timestamping scheme to make that translation as trivial as possible. We believe our approach has applications beyond the domain of collaborative editing.","PeriodicalId":239598,"journal":{"name":"Proceedings of the 7thWorkshop on Principles and Practice of Consistency for Distributed Data","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-04-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121977292","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}
{"title":"Flec","authors":"Jim Bauwens, E. G. Boix","doi":"10.1145/3380787.3393685","DOIUrl":"https://doi.org/10.1145/3380787.3393685","url":null,"abstract":"Modern distributed applications increasingly replicate data in order to guarantee both high availability of systems and an optimal user experience. Conflict-Free Replicated DataTypes (CRDTs) are a family of data types specially designed for highly available systems which guarantee some form of eventual consistency. However, currently CRDT implementations are hard to integrate with existing applications and/or programming languages. In this extended abstract we describe Flec, a versatile programming framework for operation-based CRDTs that ultimately can be run in any environment supporting WebAssembly.","PeriodicalId":239598,"journal":{"name":"Proceedings of the 7thWorkshop on Principles and Practice of Consistency for Distributed Data","volume":"200 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-04-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116155468","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}
{"title":"PushPin","authors":"Peter van Hardenberg, Martin Kleppmann","doi":"10.1145/3380787.3393683","DOIUrl":"https://doi.org/10.1145/3380787.3393683","url":null,"abstract":"Fully peer-to-peer application software promises many benefits over cloud software, in particular, being able to function indefinitely without requiring servers. Research on distributed consistency mechanisms such as CRDTs has laid the foundation for P2P data synchronisation and collaboration. In this paper we report on our experience in taking these technologies beyond research prototypes, and working towards commercial-grade P2P collaboration software. We identify approaches that work well in our experience, such as the functional reactive programming paradigm, and highlight areas in need of further research, such as the reliability of NAT traversal and usability challenges.","PeriodicalId":239598,"journal":{"name":"Proceedings of the 7thWorkshop on Principles and Practice of Consistency for Distributed Data","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-04-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116845535","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}