Cassandra Nodetool Listsnapshots 输出不清楚

Cassandra Nodetool Listsnapshots output is unclear

命令nodetool listsnapshots的输出中真实大小是什么?

Cassandra 文档中没有解释。

我找了一会儿,在 Cassandra 文档中找不到任何东西 - 然而,Scylladb docs(Scylla 本身是从 Cassandra 派生的)说 真实大小"Total size of all SSTables which are not backed up to disk"

进一步阅读提供了以下示例:

There is a single 1TB file in the snapshot directory. If that file also exists in the main column family directory, the size on the disk is 1TB and the true size is 0 because it is already backed up to disk.

似乎 "true size" 是尚未备份的数据量 - 如果您的备份是新鲜的,它将是 0。

它是只有那个快照硬link 的 sstables 的总大小。

快照只是为实际的 sstable 组件创建硬links。一旦压缩并删除,快照中的 hardlink 可能只是 link 引用 inode 并阻止它被释放。这就是它将测量的内容。

例如,如果您禁用压缩并拍摄快照,列表快照将立即将真实大小显示为零。如果关闭节点,并在数据目录中删除一个 sstable 然后重新启动,listsnapshots 将显示真实大小作为删除的 sstable 的大小。