gpt4 book ai didi

java - 吞吐量与复制因子对 cassandra 读取性能的影响

转载 作者:太空宇宙 更新时间:2023-11-04 06:21:20 26 4
gpt4 key购买 nike

我有一个由 8 个 Cassandra 节点(Amazon EC2 实例)组成的集群。我正在评估增加复制因子对 Cassandra 读取性能的影响。除了初始插入 100 万个对象之外,不执行任何写入操作。 Read_Repair 机会被禁用,并且正在使用一致性级别 ONE。到目前为止,我的观察是,随着复制因子的增加,读取性能会下降。有什么解释为什么会发生这种情况吗?

最佳答案

根据您尝试执行的读取类型,如果节点数量保持不变并且增加复制因子,读取性能可能会降低。

例如,如果您对集群列运行范围查询,或者需要指定“允许过滤”关键字的任何其他查询,理论上您可以观察到该行为。通过增加复制因子,集群的每个节点将存储更多数据:与环的主范围相关的数据以及与该节点作为副本的所有分区键相关的数据。即使 Cassandra 有很多优化来避免此类查询的性能下降,但在每个节点中添加更多行也会降低性能。

对于使用分区键的查询,不应观察到性能下降,因为在到达数据之前对分区摘要(在内存中)和分区索引(在磁盘上)的访问次数几乎相同。显然,只有当您进行一致性读取时,这一点才成立。如果你在这种情况下观察到这种现象,我认为这应该与缓存未命中次数的增加有关(如果你使用键缓存、行缓存或布隆过滤器,特别是当你尝试读取不存在的数据时),因为所有这些缓存无法保存磁盘上存在的所有数据,而且由于现在每个节点上有更多的数据,所以所有缓存中的命中次数应该会减少。这可以使用nodetool进行验证。

当然,在分区键访问的情况下,您在增加复制因子方面还有许多其他优势,因为您有更多的副本节点可用于回答您的查询。但是,由于您的驱动程序有更多的选择和更高的复制因子,因此向同一节点询问同一行两次的概率会降低。那么您在某些缓存中找到该行的可能性就较小。

关于java - 吞吐量与复制因子对 cassandra 读取性能的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27385969/

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