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 的大小。
命令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 的大小。