什么是可交换复制数据类型,以及如何在不需要共识的情况下进行复制?

问题描述 投票:0回答:1

我正在尝试对交换复制数据类型进行研究,并且没有找到任何没有陷入大量技术术语的好定义,这使得很难理解如何在不使用的情况下在分布式环境中复制数据共识。

replication distributed
1个回答
0
投票

在Layman的术语中,您可以将CRDT视为如下:

CRDTS是一种数据类型,可在没有显式同步的情况下在分布式环境中实现强大的最终一致性。 CRDT的吸引人的特性是它们都是无冲突的并且不需要同步,这一开始有点令人困惑,因为你认为必须有某种同步,例如,如果我写2然后3会发生什么到副本和副本A收到更新3之前2和副本B收到正确的顺序,前2然后3,那么我们有冲突?

CRDT的关键是它们被划分为特定的操作,在这种情况下,上面的场景不会产生任何冲突。最简单的方案是增加聚合值,如果A和B只是添加所有传入值,它们最终都会以值5结束,而不会发生冲突,仅依赖于最终一致性的弱假设。具体而言,操作要求通常是操作是可交换的并且操作不违反因果顺序。

基本上,CRDT保证所有并发操作相互通信。

当然,如果CRDT只能实现简单的求和,那就不会很有趣了。然而,事实证明,聪明的人已经开发了CRDT算法,用于编辑共享文档(参见“CRDT Logoot”),仅增长集等等更有用的东西。

但是,请记住,通过消除对共识的需求,CRDT本身就是有限的,并且有许多简单的事情是他们无法做到的。

希望这个描述对你有意义,对于更准确的描述,我认为数学定义是最直观的。

© www.soinside.com 2019 - 2024. All rights reserved.