License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.OPODIS.2019.14
URN: urn:nbn:de:0030-drops-118009
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2020/11800/
Go to the corresponding LIPIcs Volume Portal


Yu, Weihai ; Elvinger, Victorien ; Ignat, Claudia-Lavinia

A Generic Undo Support for State-Based CRDTs

pdf-format:
LIPIcs-OPODIS-2019-14.pdf (0.5 MB)


Abstract

CRDTs (Conflict-free Replicated Data Types) have properties desirable for large-scale distributed systems with variable network latency or transient partitions. With CRDT, data are always available for local updates and data states converge when the replicas have incorporated the same updates. Undo is useful for correcting human mistakes and for restoring system-wide invariant violated due to long delays or network partitions.
There is currently no generally applicable undo support for CRDTs. There are at least two reasons for this. First, there is currently no abstraction that we can practically use to capture the relations between undo and normal operations with respect to concurrency and causality. Second, using inverse operations as the existing partial solutions, the CRDT designer has to hard-code certain rules and design a new CRDT for almost every operation that needs undo support.
In this paper, we present an approach to generic support of undo for CRDTs. The approach consists of two major parts. We first work out an abstraction that captures the semantics of concurrent undo and redo operations through equivalence classes. The abstraction is a natural extension of undo and redo in sequential applications and is straightforward to implement in practice. By using this abstraction, we then device a mechanism to augment existing CRDTs. The mechanism provides an "out of the box" support for undo without the involvement of the CRDT designers. We also present a practical application of the approach in collaborative editing.

BibTeX - Entry

@InProceedings{yu_et_al:LIPIcs:2020:11800,
  author =	{Weihai Yu and Victorien Elvinger and Claudia-Lavinia Ignat},
  title =	{{A Generic Undo Support for State-Based CRDTs}},
  booktitle =	{23rd International Conference on Principles of Distributed Systems (OPODIS 2019)},
  pages =	{14:1--14:17},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-95977-133-7},
  ISSN =	{1868-8969},
  year =	{2020},
  volume =	{153},
  editor =	{Pascal Felber and Roy Friedman and Seth Gilbert and Avery Miller},
  publisher =	{Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops.dagstuhl.de/opus/volltexte/2020/11800},
  URN =		{urn:nbn:de:0030-drops-118009},
  doi =		{10.4230/LIPIcs.OPODIS.2019.14},
  annote =	{Keywords: Data replication, eventual consistency, state-based CRDT, delta-state CRDT, concurrent undo}
}

Keywords: Data replication, eventual consistency, state-based CRDT, delta-state CRDT, concurrent undo
Collection: 23rd International Conference on Principles of Distributed Systems (OPODIS 2019)
Issue Date: 2020
Date of publication: 11.02.2020


DROPS-Home | Fulltext Search | Imprint | Privacy Published by LZI