首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CRDTs和RAFT协议之间有关系吗?或者它们是正交的?

CRDTs和RAFT协议之间有关系吗?或者它们是正交的?
EN

Stack Overflow用户
提问于 2015-12-23 10:52:01
回答 1查看 794关注 0票数 2

以一个多人网络游戏的用例为例。您马上就会遇到跨网络复制和协调共享状态的问题。

针对这一问题似乎有多种工具,特别是两种工具似乎相互重叠:

  1. 无冲突复制数据类型 (CRDTs) -用于
  2. RAFT共识算法 -用于在分布式网络中选择事务领导者,以帮助实现协商一致。

我的问题是:,CRDTs和排程协议之间有关系吗?或者它们是正交的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-23 23:05:29

在分布式系统术语中,这两者是非常不同的,并且服务于非常不同的用例。虽然两者的目标都是实现强一致性,但CRDTs通常在不牺牲可用性的情况下这样做,Raft则以牺牲可用性为代价。面对网络分区,CRDT将仍然可用,但Raft集群可以部分或完全不可用。Raft是一种协商一致的算法,它依赖于大多数集群之间的通信来取得进展。

在可以由每个人管理的状态类型上也存在差异。CRDTs的工作是代表一组有限的、定义良好的数据类型,而Raft和其他协商一致的算法可以用来建模更广泛的潜在数据结构和算法。Raft通常用于对复制状态机建模。通过Raft算法记录并复制状态机的命令,并将其应用于状态机。状态机可以用于建模数据结构,如映射和集合,或者通过建模诸如锁、领导人选举和信号量来控制并发。

您还必须从可伸缩性的角度来看待您的系统,Raft和CRTD在这里也有很大的不同。Raft是一个以领导者为基础的系统。Raft选择一个节点作为领导者,所有对Raft复制状态机的状态更改都经过该单个领导人,并在应用到状态机之前同步复制到大多数跟随者。或者,CRDT具有更大的可伸缩性,因为它们不受单个节点的限制。

最终,Raft和CRDTs的区别在于一致性和性能的差异。Raft旨在创建一个单一系统的一致视图,重点是安全性而不是性能。通常,像Raft这样的协商一致算法用于配置管理和服务发现。CRDT的设计是为了在不牺牲可用性的情况下尽可能地快速和一致。通常,CRDT用于在更多的可用性依赖和不太关键的系统中存储。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34434011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档