Moving elements in list CRDTs

Moving elements in list CRDTs

Slides from a talk at the 7th Workshop on Principles and Practice of Consistency for Distributed Data (PaPoC), 27 April 2020.
https://papoc-workshop.github.io/2020/
https://martin.kleppmann.com/2020/04/27/papoc-list-move.html

Abstract:

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.

0d4ef9af8e4f0cf5c162b48ba24faea6?s=128

Martin Kleppmann

April 24, 2020
Tweet