***** This design is a duplicate of a Causal Length Set (see notes in the comments). We leave nonetheless the original paper here because the proofs are referred to in another submission.***** The 2P-Set Conflict-Free Replicated Data Type (CRDT) supports two phases for each possible element: in the first phase an element can be added to the set and the subsequent additions are ignored; in the second phase an element can be removed after which it will stay removed forever regardless of subsequent additions and removals. We generalize the 2P-Set to support an infinite sequence of alternating additions and removals of the same element. In the presence of concurrent additions and removals on different replicas, all replicas will eventually converge to the longest sequence of alternating additions and removals that follows causal history. The idea of converging on the longest-causal sequence of opposite operations had already been suggested in the context of an undo-redo framework but the design was neither given a name nor fully developed. In this paper, we present the full design directly, using nothing more than the basic formulation of state-based CRDTs. We also show the connection between the set-based definition of 2P-Set and the counter-based definition of the $\infty$P-Set with simple reasoning. We then give detailed proofs of convergence. The underlying \textit{grow-only dictionary of grow-only counters} on which the $\infty$P-Set is built may be used to build other state-based CRDTs. In addition, this paper should be useful as a pedagogical example for designing state-based CRDTs, and might help raise the profile of CRDTs based on \textit{longest sequence wins}.
翻译:***** 本设计是因果长度集的一个副本(详见注释)。尽管如此,我们仍将原论文留于此,因为相关证明已在另一篇投稿中被引用。***** 2P-集无冲突复制数据类型(CRDT)为每个可能的元素支持两个阶段:第一阶段,元素可被添加到集合中,后续的添加操作将被忽略;第二阶段,元素可被移除,此后无论后续的添加或移除操作如何,该元素将永久保持移除状态。我们将2P-集泛化,以支持同一元素的无限次交替添加与移除序列。当不同副本上存在并发的添加与移除操作时,所有副本最终将收敛于遵循因果历史的最长交替添加与移除序列。基于最长因果序列的相反操作收敛思想已在撤销-重做框架的上下文中被提出,但该设计既未命名也未得到充分发展。本文直接使用基于状态的CRDT的基本公式呈现了完整设计。我们还通过简单推理展示了2P-集的基于集合的定义与∞P-集的基于计数器的定义之间的联系。随后,我们给出了收敛性的详细证明。构成∞P-集基础的底层\textit{仅增长计数器的仅增长字典}可用于构建其他基于状态的CRDT。此外,本文可作为设计基于状态的CRDT的教学示例,并可能有助于提升基于\textit{最长序列胜出}的CRDT的知名度。