我开始研究 nosql 和面向文档的数据库来存储我们将在我们的网站上提供的 HTML5 应用程序的资产。这旨在替代仅在文件系统上存储文件。它们将是小型的 Web 优化文件,包括 html、js、css 和 xml 等文本文件,以及图像、声音和字体等二进制文件。
由于我对容错感兴趣,我正在研究的解决方案(riak,Cassandra)使用最终一致性。虽然我在抽象层面理解这个概念,但当我与经理和决策者交谈时,我无法用实际术语解释最终一致性需要多长时间才能保持一致。毫秒?秒?分钟?由于我在这个领域没有任何经验,所以我正在寻找现实世界的经验,这意味着什么。
我知道不同的变量将确切地决定任何配置需要多长时间,但我需要能够开始了解我们需要构建什么样的基础设施来支持我们的需求。所以我正在寻找的是我们是否需要优化网络延迟、节点数量等来支持我们的特定需求。
我们希望达到选择要测试的平台的程度,并且在我们将时间投入任何特定解决方案之前,我们希望能够说“不,这对我们不起作用”。
我们现在拥有使用严格一致性的系统(例如我们的网络服务器上的文件系统和我们的 mysql 数据库),因此我们的管理习惯于加载和超时等概念,以及“关闭”的事情。但我无法与他们沟通“是的,数据现在不可用,但它没有关闭;它最终会可用”。他们想知道“嗯,‘最终’有多长”?
我如何判断最终一致的系统是否会在我们的网站上实际运行?