【问题标题】:Why is the load different on a 3 node cluster with RF 3?为什么使用 RF 3 的 3 节点集群上的负载不同?
【发布时间】:2016-07-13 19:40:17
【问题描述】:

我有一个复制因子为 3 的 3 节点 Cassandra 集群。 这意味着所有数据都应该复制到所有 3 个节点上。

以下是nodetool状态的输出:

--  Address      Load       Tokens       Owns (effective)  Host ID                               Rack
UN  192.168.0.1  27.66 GB   256          100.0%            2e89198f-bc7d-4efd-bf62-9759fd1d4acc  RAC1
UN  192.168.0.2  28.77 GB   256          100.0%            db5fd62d-3381-42fa-84b5-7cb12f3f946b  RAC1
UN  192.168.0.3  27.08 GB   256          100.0%            1ffb4798-44d4-458b-a4a8-a8898e0152a2  RAC1

这是所有 3 个节点上磁盘使用率随时间变化的图表:

我的问题是为什么这些尺寸差异如此之大?是不是compaction没有同时运行?

【问题讨论】:

    标签: cassandra cassandra-3.0


    【解决方案1】:

    我想说有几个因素可以在这里发挥作用。

    正如您所注意到的,压缩不会同时运行,因此每个节点上 SSTable 的数量和内容会有所不同。

    memtables 也不会同时刷新到 SSTables,所以从一开始,每个节点都会有一些不同的 SSTables。

    如果您对 SSTables 使用压缩,鉴于它们的内容有些不同,通过压缩数据节省的空间量会有些不同。

    即使您使用 3 的复制因子,我想非主要范围数据的存储空间与主要范围数据的存储空间略有不同,并且可能正在映射更多主要范围数据到一个节点或另一个。

    所以基本上除非每个节点在完全相同的时间看到完全相同的消息序列,否则它们将不会拥有完全相同大小的数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-28
      • 1970-01-01
      • 2020-03-23
      • 2021-02-25
      • 2012-08-06
      • 1970-01-01
      • 1970-01-01
      • 2021-12-04
      相关资源
      最近更新 更多