重复的Cassandra SSTable文件

重复的Cassandra SSTable文件,cassandra,cassandra-3.11,Cassandra,Cassandra 3.11,在不成功的nodetool修复操作之后,我得到了两个大的sstable文件(下表中的最后两个),而不是一个,每个文件的大小都与以前的单个文件相同。现在,这些文件无法通过常用工具(nodetool clean、nodetool compact、nodetool repair)合并回来。表被复制到另一个cassandra节点(复制系数:2),现在还有两个大的sstable文件 -rw-r--r-- 1 cassandra cassandra 16M Mar 5 12:36 mc-116413

在不成功的
nodetool修复操作之后,我得到了两个大的sstable文件(下表中的最后两个),而不是一个,每个文件的大小都与以前的单个文件相同。现在,这些文件无法通过常用工具(nodetool clean、nodetool compact、nodetool repair)合并回来。表被复制到另一个cassandra节点(复制系数:2),现在还有两个大的sstable文件

-rw-r--r--   1 cassandra cassandra  16M Mar  5 12:36 mc-116413-big-Data.db
-rw-r--r--   1 cassandra cassandra  34M Mar  5 01:21 mc-116320-big-Index.db
-rw-r--r--   1 cassandra cassandra  39M Mar  3 22:46 mc-116125-big-Index.db
-rw-r--r--   1 cassandra cassandra  66M Mar  5 12:25 mc-116412-big-Data.db
-rw-r--r--   1 cassandra cassandra 262M Mar  5 05:51 mc-116365-big-Data.db
-rw-r--r--   1 cassandra cassandra 263M Mar  5 08:46 mc-116386-big-Data.db
-rw-r--r--   1 cassandra cassandra 263M Mar  5 11:42 mc-116407-big-Data.db
-rw-r--r--   1 cassandra cassandra 7.2G Mar  5 03:18 mc-116345-big-Data.db
-rw-r--r--   1 cassandra cassandra  43G Mar  3 22:46 mc-116125-big-Data.db
-rw-r--r--   1 cassandra cassandra  48G Mar  5 01:21 mc-116320-big-Data.db```

I suppose that one of this files contains duplicated data. How can I compact files back to a single file?

也许我看得不太清楚,但我在你发布的文件列表中没有看到任何重复的SSTable文件

如果您指的是以下2项:

-rw-r--r--   1 cassandra cassandra  43G Mar  3 22:46 mc-116125-big-Data.db
-rw-r--r--   1 cassandra cassandra  48G Mar  5 01:21 mc-116320-big-Data.db
它们不是重复的,因为它们有两个不同的代ID--
116125
116320
。这意味着他们也有不同的祖先

如果您指的是这些:

-rw-r--r--   1 cassandra cassandra  39M Mar  3 22:46 mc-116125-big-Index.db
-rw-r--r--   1 cassandra cassandra  43G Mar  3 22:46 mc-116125-big-Data.db

-rw-r--r--   1 cassandra cassandra  34M Mar  5 01:21 mc-116320-big-Index.db
-rw-r--r--   1 cassandra cassandra  48G Mar  5 01:21 mc-116320-big-Data.db
再说一次,它们不是彼此的复制品。
*-Data.db
文件包含实际数据。
*-Index.db
文件是包含分区索引的组件文件,即数据文件中用于快速检索的分区索引

如果你感兴趣的话,我已经在这篇文章中详细解释了-。干杯

[更新]要回答此后续问题:

你能想象一下为什么这两个文件不能压缩成一个文件吗, 像往常一样吗

假设该表配置了
SizeTieredCompactionStrategy
,则在将其压缩到一起之前,将需要大小类似的sstables作为候选表


最小阈值为4,因此需要4个大小类似的sstables才能触发压缩。

嗨,埃里克说“重复”我不是说“完全相等”。我只是假设一个文件中的数据可能会与另一个文件中的数据重复,因为在修复失败之前,整个表的总大小约为50Gb,您能想象一下为什么这两个文件不会像往常一样压缩到一个文件中吗?让我更新我的答案,以回答您的后续问题,因为我可能会耗尽空间。:)干杯埃里克,你说得对,我用STC。新的sstable文件在压缩之前会增长到2Gb大小,但我想这两个文件永远不会以这种方式压缩。那么,如何解决这个问题呢?我应该使用sstablesplit将此文件拆分为多个较小的文件,还是临时更改一些压缩设置?是的,您可以使用
sstablesplit
,但这是一个脱机工具,意味着您不能在实时的sstable上运行它(即使用C*运行)。另一种方法是手动触发压实。查看我在这里发布的详细信息--。干杯