5 research outputs found

    A Generic Undo Support for State-Based CRDTs

    Get PDF
    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

    Scalable XML Collaborative Editing with Undo

    Get PDF
    Commutative Replicated Data-Type (CRDT) is a new class of algorithms that ensure scalable consistency of replicated data. It has been successfully applied to collaborative editing of texts without complex concurrency control. In this paper, we present a CRDT to edit XML data. Compared to existing approaches for XML collaborative editing, our approach is more scalable and handles all the XML editing aspects : elements, contents, attributes and undo. Indeed, undo is recognized as an important feature for collaborative editing that allows to overcome system complexity through error recovery or collaborative conflict resolution.Le type de données répliqué commutatives (CRDT) est une nouvelle classe d'algorithmes qui assurent la cohérence des données répliquées tout en passant à l'échelle. Il a été appliqué avec succès à l'édition collaborative de textes sans mécanisme de contrôle de la concurrence complexe. Dans cet article, nous présentons un CRDT pour éditer des données XML. Par rapport aux approches existantes pour l'édition collaborative d'XML, notre approche offre un meilleur passage à l'échelle et gère tous les aspects de l'édition de document XML: éléments, le contenu, les attributs et l'annulation. En effet, l'annulation est reconnue comme un élément important pour l'édition collaborative qui permet de surmonter la complexité du système de collaboration grâce à la récupération d'erreur ou de résolution des conflits
    corecore