gpt4 book ai didi

nosql - 如何计算最终一致性需要多长时间才能达到一致?

转载 作者:行者123 更新时间:2023-12-02 15:17:12 24 4
gpt4 key购买 nike

我开始研究 nosql 和面向文档的数据库来存储我们将在网站上提供的 HTML5 应用程序的资源。这旨在替代仅在文件系统上存储文件的情况。它们将是针对 Web 优化的小型文件,包括 html、js、css 和 xml 等文本文件,以及图像、声音和字体等二进制文件。

由于我对容错感兴趣,所以我正在寻找的解决方案(riak、Cassandra)使用最终一致性。虽然我在抽象层面上理解这个概念,但当我与管理者和决策者交谈时,我无法用实际术语解释最终一致性需要多长时间才能变得一致。毫秒?秒?分钟?由于我在这个领域没有任何经验,因此我正在寻找现实世界的经验来了解这意味着什么。

我知道不同的变量将准确决定任何配置需要多长时间,但我需要能够开始了解我们需要构建哪些类型的基础设施来支持我们的需求。所以我正在寻找的是我们是否需要优化网络延迟、节点数量等来支持我们的特定需求。

我们希望能够选择要测试的平台,并且在投入时间研究任何特定解决方案之前,我们希望能够说“不,这对我们不起作用。”

我们现在拥有使用严格一致性的系统(例如我们的网络服务器和 mysql 数据库上的文件系统),因此我们的管理习惯于负载和超时等概念,以及“宕机”的情况。但我无法与他们沟通“是的,数据现在不可用,但它并没有关闭;它最终将可用”。他们想知道“那么,‘最终’是多长时间?”

我如何判断最终一致的系统是否能够在我们的网站上实际发挥作用?

最佳答案

由于我对 Riak 的熟悉程度明显高于 Cassandra,因此我将限制讨论最终一致性如何应用于 Riak。

正常运行期间,Riak支持tuneable consistency它允许您根据应用程序的要求定制一致性行为。然而,默认设置非常合理,适用于大多数情况,因为它们需要大多数 replicas在读取或写入被视为成功之前对其进行响应。

尽管所有副本可能并非在每个时间点都处于完全相同的状态,但这些一致性设置将确保您读取所写入的内容。传统上,不一致是通过一个名为 read-repair 的过程在读取时纠正的。 ,但如果启用主动反熵(Riak 1.3版本的新功能),也可以定期纠正。

Eventual consistency否则主要要在各种故障场景中考虑。如果例如当一个节点与集群的其余部分分离时,它将(使用默认设置)继续能够接受写入和读取,它将根据其保存的数据/副本发挥最佳能力。由于在此期间它无法与集群的其余部分通信,因此可能会出现不一致。然而,一旦集群恢复正常运行状态,这些问题就会得到解决。具体需要多长时间取决于许多外部因素,范围可能从临时网络故障的几分之一秒到需要手动干预来纠正问题的几分钟或几小时。

关于nosql - 如何计算最终一致性需要多长时间才能达到一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15556613/

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