首页 理论教育 SWIFT实现最终一致性以提高可用性和划分容错性

SWIFT实现最终一致性以提高可用性和划分容错性

时间:2023-11-16 理论教育 版权反馈
【摘要】:2000年,埃里克·布鲁尔教授提出了著名的CAP理论。林奇证明了CAP理论的有效性。指出分布式系统不可能同时满足一致性、可用性和分区容错三个要求。SWIFT放弃了严格的一致性,采用了最终的一致性模型。为了实现这一目标。SWIFT采用仲裁协议。SWIFT存储系统的目的是为了处理大量的非结构化数据应用服务,根据应用需求,SWIFT只提供“最终一致性”,而不是“强一致性”。根据CAP理论,SWIFT通过牺牲一致性来提高可用性和划分容错性。

SWIFT实现最终一致性以提高可用性和划分容错性

2000年,埃里克·布鲁尔教授提出了著名的CAP理论。然后是赛斯·乔伯特和南希。林奇证明了CAP理论的有效性。指出分布式系统不可能同时满足一致性、可用性和分区容错(分区容限)三个要求。

根据埃里克·布鲁尔的CAP理论,不能同时满足三个方面。SWIFT放弃了严格的一致性(满足ACID事务级别),采用了最终的一致性模型。实现高可用性和无限水平扩展。为了实现这一目标。SWIFT采用仲裁协议(仲裁具有法定人数的含义)。

(1)定义:N-数据的总拷贝数、W-写操作确认的拷贝数和R-读操作的拷贝数。

(2)强一致性:R+W>N,确保副本上的读写操作相互交叉,以便读取最新版本,如果WN,RG1,则需要更新,适合大量读取,在强一致性的情况下需要少量的写入操作;如果RNS、W1只更新一个副本,则可以通过读取所有副本获得最新版本,这适用于大量写入和少量读取场景中的强一致性。(www.xing528.com)

(3)弱一致性:R+W<=N,如果读写操作的副本集不产生交集,也可以读取数据,适用于一致性要求较低的情况。

SWIFT针对读写频率较高的情况,采用更折中的策略,即写操作需要满足至少一半成功的W>N/2,然后确保读操作和写操作的副本集至少产生一个交点。即R+W>N。SWIFT的默认配置为NN3、W2>N/2、RX1或2,即每个对象将有3个副本,并尽可能存储在不同区域的节点上,WF 2表示至少需要更新2个副本才能成功。当R=1表示读取操作成功并立即返回时,F可以读取旧版本(弱一致性模型);当R=2时,我们需要同时读取两个副本的元数据信息,方法是在读取请求中添加x-Update=true参数,然后比较时间戳以确定哪个是最新版本(强一致性模型)。如果数据不一致,后台服务过程将通过在某个窗口中检测和复制协议来完成数据同步,以确保最终的一致性。

SWIFT存储系统的目的是为了处理大量的非结构化数据应用服务,根据应用需求,SWIFT只提供“最终一致性”,而不是“强一致性”。根据CAP理论,SWIFT通过牺牲一致性来提高可用性和划分容错性。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈