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.