2017-02-09 6 views
0

Данные, которые мы храним в Кассандре, являются чистыми временными рядами без ручных удалений. Данные удаляются только с помощью TTL.Воздушный транспорт Не работает Кассандра ремонт по временным рядам данных

Для таких случаев использования действительно нужен ремонт? Каково влияние неработающего ремонта?

ответ

0

Если вы установили TTL, cassandra отметит данные надгробием после превышения времени. Если вы не участвуете ремонт регулярно, огромный надгробный камень будет сгенерирован и это будет влиять на производительность Кассандры

После числа секунд с момента создания столбца превышает значение TTL, данные TTL считаются истекшим и включен в результатах , Истекшие данные отмечены надгробным камнем после следующего чтения на пути чтения, но он остается для максимума gc_grace_seconds. После этого промежутка времени, то захоронены данные автоматически удаляются во время нормального уплотнения и ремонта процессов

https://docs.datastax.com/en/cql/3.1/cql/cql_using/use_expire_c.html

+0

В этом случае я убедился, что надгробные плиты не созданы в больших количествах - путем сокращения соответственно gc_grace_seconds –

+0

«Истекшие данные отмечены надгробным камнем после следующего чтения» - он отмечен надгробным камнем только при следующем уплотнении, проверен в 3.9. Кроме того, если истекшие данные старше gc_grace во время уплотнения, они будут просто удалены без каких-либо надгробных плит, созданных вообще. – nevsv

1
  1. Tobstoned данных действительно удаляются после gc_grace_seconds + уплотнению. если таблица с данными с надгробиями не уплотнена, вы будете складывать с этими данными, и это приведет к ухудшению производительности.

  2. Если вы не запустили ремонт в течение периода gc_grace, мертвые данные могут снова жить. Вот datastax статья об этом (и почему вам нужно запустить ремонт регулярно):

https://docs.datastax.com/en/cassandra/2.1/cassandra/dml/dml_about_deletes_c.html

EDIT:

данные TTLed не захоронены на время после истечения, но только тогда, когда есть предел уплотнения (по крайней мере, в 3.9). Вы не увидите истекли данные, даже если нет надгробных памятников.

Итак, если есть проблема с узлом, и данные TTLed не получили надгробный камень при уплотнении, он получит один на следующем уплотнении или будет просто удален. В соответствии с этим и тот факт, что данные НИКОГДА не удаляются и только истек, и у вас нет каких-либо оверлитов на тот же ключ, вам не нужно запускать восстановление согласованности данных.

И, в отношении всех вышеперечисленных, я буду рекомендовать проводить ремонтные работы время от времени (с гораздо большим интервалом между ними), в случае, если что-то случайно было написано не используя вас, пишите pass.

+0

Я не думаю, что ремонт снял надгробные плиты; только уплотнение делает. Удаленные данные могут возникать только тогда, когда восстановленный узел был восстановлен. Но в случае, когда я не делаю никаких ручных удалений, НЕ удастся ли удалять сами данные на основе TTL? –

+0

Да, ремонт не удаляет надгробные плиты, я сам не объяснял себя, пожалуйста, просмотрите отредактированный ответ. – nevsv

+0

Хорошо. Спасибо @nevsv. Можете ли вы определить более высокий интервал? Будут ли дни или недели? –