Дублированные файлы Cassandra SSTable
После неудачного
nodetool repair
операция У меня есть два больших файла sstable (последние два в листинге ниже) вместо одного, каждый из которых имеет тот же размер, что и предыдущий файл. И теперь эти файлы нельзя объединить обычными инструментами (очистка nodetool, компактный nodetool, ремонт nodetool). Таблицы реплицируются на другой узел cassandra (replication_factor: 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?
1 ответ
Возможно, я не ищу должным образом, но я не вижу дубликатов файлов 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
Они не являются дубликатами, потому что у них есть 2 разных идентификатора поколения -
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
Файлы - это файлы компонентов, которые содержат индекс раздела, то есть индекс разделов в файлах данных, которые используются для быстрого поиска.
Если вам интересно, я объяснил это более подробно в этом посте - https://community.datastax.com/questions/5219/ . Ваше здоровье!
[ОБНОВЛЕНИЕ] Чтобы ответить на следующий вопрос:
Не могли бы вы предположить, почему эти два файла не сжимаются в один, как обычно?
Предполагая, что таблица настроена с
SizeTieredCompactionStrategy
, для этого потребуются стойки такого же размера, как и у кандидатов, прежде чем они будут уплотнены вместе.
В минимальных по умолчанию sstable кандидатов являются
min_threshold: 4
так что вам нужно 4 стойки одинакового размера для запуска уплотнения.