cassandra中使用的磁盘空间差异

cassandra中使用的磁盘空间差异,cassandra,Cassandra,我使用的是Cassandra 2.2.4。其中我有一个复制因子为3的表,但我只有2个节点。这2个节点使用的磁盘空间不同(第一个节点的大小为10 GB,第二个节点的大小为14 GB)。这些差异的原因是什么 有人能帮我吗?即使您使用了复制因子1,磁盘空间也可能有所不同。这是因为一些分区存储在一个节点中,而另一些分区存储在另一个节点中。 如果您有更多属于分区A的数据,则具有分区A的节点将有更多数据。 分区由主键确定。这就是为什么拥有一个好的主键是如此重要。 您可以在datastax网站上观看教程,了解

我使用的是Cassandra 2.2.4。其中我有一个复制因子为3的表,但我只有2个节点。这2个节点使用的磁盘空间不同(第一个节点的大小为10 GB,第二个节点的大小为14 GB)。这些差异的原因是什么


有人能帮我吗?

即使您使用了复制因子1,磁盘空间也可能有所不同。这是因为一些分区存储在一个节点中,而另一些分区存储在另一个节点中。
如果您有更多属于分区A的数据,则具有分区A的节点将有更多数据。
分区由主键确定。这就是为什么拥有一个好的主键是如此重要。
您可以在datastax网站上观看教程,了解有关如何选择最佳数据模型和主键的详细信息:。

RF3用于2个节点的原因是什么?使用的磁盘空间不会总是相同的,但在您的情况下,可能是您的第二个节点正在成为热点。实际上,我们需要3个复制,这就是为什么我们最初将RF设置为3个可用的2个节点,并决定在将来添加一个额外的节点。如果您需要RF3,则可以在添加新节点后更改为RF3。现在不需要添加。对于两个节点,请使用RF2 max。因为您将无法将第三个复制的数据存储到任何节点。这意味着磁盘空间差异背后的原因与分布式系统中节点号和RF2的差异无关,数据的分布应几乎相等,但当单个节点存储的数据越来越多,而其他节点存储的数据越来越少时,存储大量数据的节点称为热点节点。出现热点可能有几个原因。但是,如果发生这种情况,我们和节点的依赖性就会降低,我们通常使用nodetool decommission将节点从集群中删除,然后添加。如果删除将妨碍您的一致性,那么我们将添加另一个节点以删除热点节点以保持一致性。好的,谢谢。还有一个疑问,是否有可能将两个副本存储到同一个节点中?否,两个副本不能在同一个节点上。在您的情况下,即使复制系数为3,数据也只复制2次,每个节点上有一个副本。不会有具有第三个副本的节点。这也与一致性级别有关。现在我想你有一致性级别1,我认为这是默认的,所以一切都正常。如果您将一致性级别设置为ALL,并且复制因子大于节点数,我认为您将得到一个异常,因为它将尝试将数据复制到不存在的第三个节点。