TWCS - это стратегия уплотнения. Стратегии сжатия не имеют ничего общего с генерируемыми sstables. Это «алгоритм» согласования и очистки, как только они созданы. Способ работы TWCS заключается в том, что sstables будут объединены в окна. Ключевое слово здесь «консолидировано». Нет гарантии, что sstables будут «сгенерированы» в этот период времени, но все, что генерируется, после истечения времени окна, будет объединено. Так что, если у вас есть, скажем, почасовые окна / корзины, в течение этого часа sstables может генерироваться или не генерироваться. Если во время окна создается несколько sstables, они уплотняются / консолидируются / сверяются с использованием STCS (sstables одинакового размера объединяются). По истечении часа любые sstables, которые остаются для этого окна, будут сжаты вместе в один sstable. Со временем вы увидите один sstable на окно (или ни одного, если ничего не было сгенерировано в этом окне). После прохождения TTL и gc_grace все окна просто удаляются (вместо больших усилий по слиянию с другими, а затем по удалению просроченных записей).
TWCS работает очень хорошо, если в окнах нет перекрытия строк. Если есть перекрытие, то самый старый оконный sstable не сможет быть удален, пока не истечет срок действия самого нового sstable с перекрывающимися записями. Другими словами, TWCS хорошо работает для вставок, которые не пересекают окна (помните, что обновления и удаления также считаются вставками). Вы должны быть уверены, что используете TTL для очистки (т.е. не запускайте операторы удаления, так как это приведет к перекрытию). Кроме того, из того, что я обнаружил при использовании этого, убедитесь, что отключили восстановление для таблиц с TWCS, поскольку это может вызвать большие проблемы (невидимое перекрытие).
Таким образом, короче говоря, TWCS не вызывает получение sstablesсгенерированный (существуют правила для создания sstables, которые не имеют ничего общего со стратегиями уплотнения), это просто еще один метод поддержания чистоты.
Надеюсь, что это поможет.