我正在学习复制策略,并想知道卡桑德拉(无主子)相对于芒果(领导者/追随者)的优点。
据我所读,它们的写量是一样的,因为用无母写的写是通过仲裁发送到所有节点的,而在领导/跟随者中,主人最终会将写发送给所有的追随者。
对于读,如果您使用的是一个没有主从的地方R+W> N,那么它也是非常一致的,就像领导者/跟随者一样,您只从领导者那里读取。
那么,你什么时候才会使用领导者/追随者而不是无名氏呢?它们与读/写的比例有何不同?
我唯一能找到的两个不同之处是:
如果你从追随者那里读到,
失败时选择新主人
发布于 2022-06-23 15:13:21
对于客户端来说,单领导者复制要简单得多。客户不需要处理读取修复,而且在一个单一的领先复制系统中支持ACID属性非常简单。
此外,使用单一的领先复制,您有更多的选项如何处理数据流-您可以去同步,半同步或异步。所有这些都非常适合于正确的用例。
对于一致性保证,CAP定理适用于这两种情况,这是无法避免的。
对你问题中的发言提出几点意见:
“
”。
在无主(发电机风格更具体)的方法,写被发送到每个节点。但是,在W节点数确认写入后,将向客户端确认写入。使用这种方法,一旦客户端获得了写入确认,就可以推断,如果客户端在读取之后立即开始读取,那么客户端将看到数据。如果写入失败-少于W节点确认写入,那么客户机将看到什么是未知的。在这件事上有很多边缘情况。
至于领导者/跟随者,只有在异步复制模式下才能最终发送给追随者。您的系统也可以使用同步模式。在这种情况下,当所有副本获得更新时,都会向客户端确认写入。因此,每一次读取都会看到最新的数据。
在R+W> N的“
“
当写入部分失败时,有许多边缘情况。通常答案是读修复--基本上是说,如果一个客户端读取了部分保存的值(由小于W节点确认的写入),那么下一次读取时也会看到该值。但正如我所说,这个具体的推理要复杂一些。
https://stackoverflow.com/questions/72711353
复制相似问题