两个 Cassandra 节点,复制因子为 2,但使用的存储大小不同

Two Cassandra nodes with a replication factor of 2 yet different sizes in storage used

我们让 OpenNMS 将图形数据发送到我们的 Cassandra/Newts 集群,该集群由 2 个 Cassandra 节点组成。我已将键空间 "newts" 的复制因子设置为 2。

我同时启动节点并将它们放置一段时间,然后我在每个节点上 运行 "nodetool cfstats newts" 并且两个节点具有完全相同的写入计数。

但是如果我进入每个节点的数据目录“/db/newts”并且 运行 "du -h" 我可以看到以下内容:

如果我将复制因子设置为 2,它们的大小会有什么不同?我知道它们通过 "nodetool status" 连接到同一个集群,这两个节点都显示为 "UN" (Up/Normal).

在 Cassandra 中,数据不会直接写入硬盘,它位于:

Commit log >> Memtable >> SSTables

Here您可以找到有关数据写入方式的好文档。

你可以运行:

nodetool flush

这会将 memtables 刷新到 sstables。之后,您应该能够在两个节点上看到相同的 sstable 大小。