如何处理磁盘上 Cassandra 的空目录?



我有Cassandra 3.11.4并且已经运行了一段时间的测试环境。我已经完成了nodetool清理,清除快照,修复,压缩等,并且我的密钥空间的数据存储目录中剩余的内容包含许多"空"目录。

从目录运行 du 时:

0       ./a/backups
47804   ./a
0       ./b/backups
0       ./b
0       ./c/backups
0       ./c
0       ./d/backups
0       ./d
7748832 .

只是名称重命名为通用字母的一部分数据,但基本上还剩下许多这样的空目录。但是,引用的表要么很久以前就已经删除了,即比gc_grace_seconds长,但目录链接仍然存在?这些不是快照,因为制作快照并使用nodetool clearsnapshot清除它工作正常。

在我手动删除每个空文件夹之前,这将是一个痛苦,因为它们有很多;我是否错过了维护集群的步骤,这导致了这种情况,还是发生了一些事情,并且必须定期处理假设我的测试模式中有很多变化?

快照被清除,/backups 尾随意味着这些是增量备份?

https://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsBackupIncremental.html

即使是这样,也没有方法可以删除这些增量备份,至少我可以使用nodetool找到,至少,cassandra.yaml 中incremental_backups的设置是 False。

我相信有答案说删除这些"幽灵"目录是安全的,但如果密钥空间有很多这样的目录,那将非常烦人。另外,也许这只是我想要干净目录的想法,这些"幽灵"目录会对性能产生影响吗?

所以"幽灵"表目录来自:
1( 空表 - 仍然是一个有效的表,但没有插入
任何数据 2( 截断的表 3( 删除的表

在第一种和第二种情况下,如果删除目录,最终可能会导致问题。如果要验证该目录是否用于该表,可以查询:

select id from system_schema.tables 
where keyspac_name = 'xxxx' and
table_name = 'yyyy';

该 ID 是用于该表的目录扩展的 ID。该键空间的该表的该目录的任何其他匹配项均未使用。

-吉姆

最新更新