У меня кластер из 48 узлов C * (3.11.4), распределенный по 4 регионам AWS с RF = 3.Несколько месяцев назад я начал замечать, что использование дисков на некоторых узлах постоянно увеличивается.Сначала я решил проблему, уничтожив узлы и восстановив их, но проблема возвращается.
Недавно я провел еще несколько исследований, и вот что я нашел:
- Я сузил проблему доCF, который использует TWCS (и все записанные строки имеют ttl), просто глядя на использование дискового пространства
- в каждом регионе, 3 узла имеют эту проблему увеличения дискового пространства (соответствует коэффициенту репликации)
- на каждом узлеЯ отследил проблему до конкретного SSTable, используя sstableexpiredblockers
.Этот SSTable блокирует очистку всех других SSTable
- в SSTable, используя sstabledump
, я нашел строку, которая не имеет ttl, как другие строки, и, кажется, принадлежит кому-то другомукоманда проверяет что-то и забывает включить ttl
- все остальные строки показывают «expired: true», кроме этой, поэтому я подозреваю
- когда я запрашиваю этот конкретный ключ раздела, я не получаю результатов
- Я попытался удалить строку в любом случае, но это, похоже, ничего не изменило
- Я также попытался nodetool scrub
, но это тоже не помогло
Будет ли эта мошенническая строка без ttl объяснитьпроблема?Если так, то почему?Если нет, у кого-нибудь есть другие идеи?Почему строка отображается в sstabledump
, а не при запросе?
Я ценю любую помощь или предложения!