gpt4 book ai didi

algorithm - Paxos和Cassandra中的W+R>=N有什么区别?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:15:54 26 4
gpt4 key购买 nike

类似 Dynamo 的数据库(例如 Cassandra)可以通过仲裁来强制一致性,即应该选择多个同步写入的副本 (W) 和多个要读取的副本 (R),使得 W+R >N 其中 N 是复制因子。另一方面,Zookeeper 等基于 PAXOS 的系统也被用作一致的容错存储。

这两种方法有什么区别? PAXOS 是否提供 W+R>N 模式不提供的保证?

最佳答案

是的,Paxos 提供了类似 Dynamo 的系统及其读写仲裁无法提供的保证。不同之处在于如何处理故障以及写入期间发生的情况。成功写入后,两种系统的行为相似。数据将被保存并可供以后读取(直到被覆盖或删除)等。

差异出现在写入期间和失败之后。在向最终一致性系统写入某些内容时,直到您从 W 个节点获得成功答复,然后数据可能已写入某些节点而不是其他节点,并且无法保证整个系统都同意当前值。如果此时尝试读回数据,一些客户端可能会取回新数据和一些旧数据。换句话说,系统不是立即一致的。这是因为在这些系统中跨节点的写入不是原子的。通常有一些机制可以“治愈”这样的不一致,并且“最终”系统将再次变得一致(即读取将再次始终返回相同的值,直到写入新内容)。这就是为什么它们通常被称为“最终一致”的原因。不一致可能(并且将会)出现,但最终总会得到处理和调和。

使用 Paxos,可以使跨节点的写入成为原子操作,因此可以避免节点之间的不一致。 Paxos 算法可以保证非故障节点在任何时间点都不会不同意写入的结果。写入在任何地方都成功或无处成功。在任何时候都不会出现任何不一致的读取(当然,如果正确实现并且所有假设都成立)。然而,这是有代价的。主要是,系统可能需要延迟一些请求并且在例如太多节点(或它们之间的通信)不工作时不可用。这是确保不会给出不一致的答复所必需的。

总结一下:主要区别在于,类 Dynamo 系统可以在写入期间或失败一段时间后返回不一致的结果(但最终会从中恢复),而基于 Paxos 的系统可以保证永远不会有任何此类不一致有时不可用并延迟请求。

关于algorithm - Paxos和Cassandra中的W+R>=N有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12156517/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com