Set CRDT com M\'ultiplas Pol\'iticas de Resoluc\~ao de Conflitos

Abstract

Um CRDT \'e um tipo de dados que pode ser replicado e modificado concorrentemente sem coordenac\~ao, garantindo-se a converg\encia das r\'eplicas atrav\'es da resoluc\~ao autom\'atica de conflitos. Cada CRDT implementa uma pol\'itica espec\'ifica para resolver conflitos. Por exemplo, um conjunto CRDT add-wins d\'a prioridade ao "add" aquando da execuc\~ao concorrente de um "add" e "rem" do mesmo elemento. Em algumas aplicac\~oes pode ser necess\'ario usar diferentes pol\'iticas para diferentes execuc\~oes de uma operac\~ao -- por exemplo, uma aplicac\~ao que utilize um conjunto CRDT add-wins pode querer que alguns "removes" ganhem sobre "adds" concorrentes. Neste artigo \'e apresentado e avaliado o desenho dum conjunto CRDT que implementa as sem\anticas referidas. --- Conflict-Free Replicated Data Types (CRDTs) allow objects to be replicated and concurrently modified without coordination. CRDTs solve conflicts automatically and provide eventual consistency. Typically each CRDT uses a specific policy for solving conflicts. For example, in an add-wins set CRDT, when an element is concurrently add and removed in different replicas, priority is given to add, i.e., the element stays in the set. Unfortunately, this may be inadequate for some applications - it may be desired to overrule the default policy for some operation executions. For example, an application using an add-wins set may want some removes to win over concurrent adds. This paper present the design of a set CRDT that implements such semantics.

0

Discussion (0)

Sign in to join the discussion.

Loading comments…