复制因素和资源使用率之间的联系



我是中国的Cassandra用户。最近我们想在我们的生产环境中使用Cassandra。但我不知道数据副本因素和资源消耗的影响。我的压力测试显示,3个复制因子使用的资源是1个复制因子的三倍。但我不确定这是对的。所以,我想问一下,复制因子和资源消耗是否有一个公式?或者有人测试过吗?

如果有人能回复我,我将不胜感激;

首先,RF=3意味着您至少需要三台服务器(显然(。但实际上,这取决于你所说的"资源"的含义。如果这主要是指磁盘空间,那么"是"设置RF=3将使用单个副本(RF=1(的3倍磁盘空间。

那你为什么想要?因为在高可用性(HA(场景中支持数据加载是Cassandra做得非常好的地方。这意味着,如果节点出现故障,Cassandra需要能够继续为请求提供服务。实现这一点意味着将RF设置为>1。

至于剩下的资源,如果你指的是网络,CPU&RAM,那么答案是"取决于"。应用程序可以选择在不同的一致性级别进行查询,如ONE、QUORUM或ALL(以及其他级别(。对于ONE,它只做它所说的:一个操作(读或写(等待来自单个节点的确认。

因此,如果一个应用程序的查询一致性为1,答案是"不",如果RF=3,它将不会使用三倍的资源。

Cassandra是分布式数据库,因此它基于分区和哈希算法存储数据。我们可以根据需求和应用程序性质配置数据的副本。默认Cassandra集群,建议生产至少有3个节点,但您应该完全根据自己的意愿使用或配置复制因子(数据的副本/副本(。

如果您使用RF=3的3节点集群,那么您的数据将分布在每个节点上(每个节点上大约有1/3的数据(。为了获得更好的性能,我们需要同等考虑所有3个节点(如磁盘、CPU、内存、I/O等(的资源。然而,我们可以在Cassandra中调整多个方面(如一致性、压缩、网络、操作系统(,以提高性能和资源效率。与1个数据副本相比,3个数据副本将使用更多的内存和磁盘。但是,如果考虑到可用性和性能,则应至少使用2个数据副本。您可以参考以下链接了解有关RF计算等的更多详细信息:-https://www.ecyrd.com/cassandracalculator/

最新更新