44 research outputs found
Data Consistency for P2P Collaborative Editing
http://portal.acm.org/Peer-to-peer (P2P) networks are very efficient for distributing content. We want to use this potential to allow not only distribution but collaborative editing of this content. Existing collaborative editing systems are centralised or depend on the number of sites. such systems cannot scale when deployed on P2P networks. In this paper, we propose a new model for building a collaborative editing system. This model is fully decentralised and does not depend on the number of sites
On Consistency of Operational Transformation Approach
The Operational Transformation (OT) approach, used in many collaborative
editors, allows a group of users to concurrently update replicas of a shared
object and exchange their updates in any order. The basic idea of this approach
is to transform any received update operation before its execution on a replica
of the object. This transformation aims to ensure the convergence of the
different replicas of the object, even though the operations are executed in
different orders. However, designing transformation functions for achieving
convergence is a critical and challenging issue. Indeed, the transformation
functions proposed in the literature are all revealed incorrect.
In this paper, we investigate the existence of transformation functions for a
shared string altered by insert and delete operations. From the theoretical
point of view, two properties - named TP1 and TP2 - are necessary and
sufficient to ensure convergence. Using controller synthesis technique, we show
that there are some transformation functions which satisfy only TP1 for the
basic signatures of insert and delete operations. As a matter of fact, it is
impossible to meet both properties TP1 and TP2 with these simple signatures.Comment: In Proceedings Infinity 2012, arXiv:1302.310
Moving elements in list CRDTs
Conflict-free Replicated Data Types (CRDTs) for lists allow multiple users to concurrently insert and delete elements in a shared list object. However, existing algorithms behave poorly when users concurrently move list elements to a new position (i.e. reorder the elements in the list). We demonstrate the need for such a move operation, and describe an algorithm that extends a list CRDT with an explicit move operation. Our algorithm can be used in conjunction with any existing list CRDT algorithm. In addition to moving a single list element, we also discuss the open problem of moving ranges of elements.Leverhulme Trust Early Career Fellowship
Isaac Newton Trus
Designing a commutative replicated data type
Commuting operations greatly simplify consistency in distributed systems.
This paper focuses on designing for commutativity, a topic neglected
previously. We show that the replicas of \emph{any} data type for which
concurrent operations commute converges to a correct value, under some simple
and standard assumptions. We also show that such a data type supports
transactions with very low cost. We identify a number of approaches and
techniques to ensure commutativity. We re-use some existing ideas
(non-destructive updates coupled with invariant identification), but propose a
much more efficient implementation. Furthermore, we propose a new technique,
background consensus. We illustrate these ideas with a shared edit buffer data
type
Introducing Selective Undo Features in a Collaborative Editor
Undo is an important functionality of editors. Selective undo is widely regarded as an important feature for collaborative editing. However, even after nearly three decades of active research and development, there is still no practical support of selective undo for collaborative editing. This paper introduces the selective undo features that we have implemented as part of a collaborative editing subsystem in the GNU Emacs text editor
Fisheye Consistency: Keeping Data in Synch in a Georeplicated World
Over the last thirty years, numerous consistency conditions for replicated
data have been proposed and implemented. Popular examples of such conditions
include linearizability (or atomicity), sequential consistency, causal
consistency, and eventual consistency. These consistency conditions are usually
defined independently from the computing entities (nodes) that manipulate the
replicated data; i.e., they do not take into account how computing entities
might be linked to one another, or geographically distributed. To address this
lack, as a first contribution, this paper introduces the notion of proximity
graph between computing nodes. If two nodes are connected in this graph, their
operations must satisfy a strong consistency condition, while the operations
invoked by other nodes are allowed to satisfy a weaker condition. The second
contribution is the use of such a graph to provide a generic approach to the
hybridization of data consistency conditions into the same system. We
illustrate this approach on sequential consistency and causal consistency, and
present a model in which all data operations are causally consistent, while
operations by neighboring processes in the proximity graph are sequentially
consistent. The third contribution of the paper is the design and the proof of
a distributed algorithm based on this proximity graph, which combines
sequential consistency and causal consistency (the resulting condition is
called fisheye consistency). In doing so the paper not only extends the domain
of consistency conditions, but provides a generic provably correct solution of
direct relevance to modern georeplicated systems
Remove-Win: a Design Framework for Conflict-free Replicated Data Collections
Internet-scale distributed systems often replicate data within and across
data centers to provide low latency and high availability despite node and
network failures. Replicas are required to accept updates without coordination
with each other, and the updates are then propagated asynchronously. This
brings the issue of conflict resolution among concurrent updates, which is
often challenging and error-prone. The Conflict-free Replicated Data Type
(CRDT) framework provides a principled approach to address this challenge.
This work focuses on a special type of CRDT, namely the Conflict-free
Replicated Data Collection (CRDC), e.g. list and queue. The CRDC can have
complex and compound data items, which are organized in structures of rich
semantics. Complex CRDCs can greatly ease the development of upper-layer
applications, but also makes the conflict resolution notoriously difficult.
This explains why existing CRDC designs are tricky, and hard to be generalized
to other data types. A design framework is in great need to guide the
systematic design of new CRDCs.
To address the challenges above, we propose the Remove-Win Design Framework.
The remove-win strategy for conflict resolution is simple but powerful. The
remove operation just wipes out the data item, no matter how complex the value
is. The user of the CRDC only needs to specify conflict resolution for
non-remove operations. This resolution is destructed to three basic cases and
are left as open terms in the CRDC design skeleton. Stubs containing
user-specified conflict resolution logics are plugged into the skeleton to
obtain concrete CRDC designs. We demonstrate the effectiveness of our design
framework via a case study of designing a conflict-free replicated priority
queue. Performance measurements also show the efficiency of the design derived
from our design framework.Comment: revised after submissio
Decentralized Execution of P2P Collaborative Processes
The growing importance of exchanges and collaborations in all business areas calls for fast, efficient, and flexible models of computersupported cooperation. As the traditionnal client-server paradigm is hampered by its structural limitations, the interest of the Information System Community is aroused by the promises of alternatives known as peerto- peer approaches. This paper introduces a generic architecture, P2P Coop, designed for the execution of collaborative business processes. Basic motivations of the model are discussed, as well as major contributions notably in terms of service-oriented routing and failure handling