Размер дискового пространства остается неизменным даже после Cassandra TTL (время жизни)

Я реализовал функцию TTL в своем коде и успешно удалил записи. Но размер хранилища данных остается прежним. Его следует немедленно уменьшить. В последнем документе Cassandra говорится, что данные будут удалены после первого уплотнения (в нем нет ясности).

мой простой вопрос

Мне нужно обеспечить размер сразу после завершения TTL. Итак, как убедиться, что дисковое пространство уменьшилось или нет?

Поделитесь своими идеями ..

Спасибо


person Ramesh Kasi    schedule 27.05.2014    source источник


Ответы (2)


Кассандра сохраняет свои данные в sstables. AFAIK знает, что во время нормальной записи sstables будут добавляться (не обновляться, не удаляться). Именно уплотнение, как вы сами упомянули, объединяет sstables. Это может привести к увеличению свободного места на диске при удалении надгробий (удаленных столбцов).

Как можно прочитать здесь, сжатие - это фоновый процесс. . Вы можете повлиять на частоту с помощью конфигурации, как описано здесь . Я не думаю, что есть способ вызвать небольшое уплотнение с помощью клиента Cassandra. Вы можете вызвать сильное уплотнение, используя nodetool compact. Однако имейте в виду, что уплотнение требует значительных операций ввода-вывода. Так что я не думаю, что это реальное решение.

Но почему так важно, чтобы удаленные данные немедленно удалялись физически?

person Community    schedule 27.05.2014

nodetool repair -pr на каждом узле удалит ваши захороненные записи (и вы все равно должны делать это так часто на основе gc_grace_seconds, см. http://www.datastax.com/documentation/cassandra/2.0/cassandra/operations/ops_repair_nodes_c.html?scroll=concept_ds_ebj_d3q_gk

Для прогресса дискового пространства это может быть так же просто, как выполнение "df -h" до и после.

person Ryan Svihla    schedule 28.05.2014