cassandra数据复制理解

cassandra data replication understanding

我正在使用 Azure 上的 Cassandra 集群。我花了 1 周多的时间才完成设置并开始工作。它现在可以工作了,但我想我误解了 Cassandra 的 1 个概念,即数据是如何存储的?

我的印象是,每当我上传数据时,相同的数据将在所有机器上可用,即如果我上传 10 MB 文件和 4 个节点(2 个种子),所有 4 个都将有 10MB 的消耗。我想我错了。

因为我刚刚创建了 4 个节点并上传了大约 (2 + 5 + 20 + 20 = 47 MB​​) 的数据 (blob) 但是当我检查状态时,我看到下面

--  Address   Load       Tokens  Owns (effective)  Host ID                               Rack
UN  10.1.2.5  28.32 MB   256     47.5%             xxxxxxxx-eb9a-46fb-8213-c7487074d9a8  rc1
UN  10.1.2.4  27.14 MB      256     51.3%             xxxxxxxx-11ed-41c6-be8b-a912e54b1ccf  rc1
UN  10.1.2.7  25.09 MB   256     50.1%             xxxxxxxx-9e73-410a-b1bf-5bfd15138625  rc2
UN  10.1.2.6  23.32 MB   256     51.2%             xxxxxxxx-d132-49b6-8eda-4459391d12e4  rc2

顺便说一句,表的复制因子是“2”。负载每隔几分钟就会略有变化。但我可以按预期下载数据和它!

抱歉我的懒惰和不公平,我已经在谷歌上搜索了一个星期的设置,如果你能帮助我理解这一点或者至少指出我正确的做法,我将不胜感激 link。

谢谢, 尼纳德

这看起来像是预期的结果。根据您的复制因子,您的每条数据都会被复制 2 次。因此,大致分布在 4 个节点上的 47 Mb 乘以 2 导致每个节点上大约有 25 mb。