In this paper, we present an extension to Melda (a library which implements a general purpose delta state JSON CRDT) to support move operations. This enhancement relies on minimal changes to the underlying logic of the data structure, has virtually no runtime overhead and zero storage overhead compared to the original version of the library, ensuring simplicity while addressing multiple use cases. Although concurrent reordering of the elements in a list was already supported in the original version of the library, moving objects between different containers lead to undesired outcomes, namely duplicate entries. To address this problem we revisited the original approach and introduced the necessary changes to support for relocating elements within a JSON structure. We detail those changes and provide some examples.
翻译:本文提出对 Melda(一种实现通用增量状态 JSON CRDT 的库)的扩展,以支持移动操作。该增强功能仅需对数据结构底层逻辑进行最小改动,与库的原始版本相比几乎无运行时开销且零存储开销,在满足多种用例的同时确保了简洁性。尽管库的原始版本已支持列表中元素的并发重排序,但在不同容器间移动对象会导致非预期结果(即重复条目)。为解决此问题,我们重新审视了原始方案,并引入了必要的变更以支持在 JSON 结构内重定位元素。文中详细阐述了这些变更并提供了若干示例。