@mannar

Cassandra, автоматическое удаление устаревших данных

В статье про архитектуру mollom (http://www.insight-it.ru/masshtabiruemost/arkhitektura-mollom/#more) увидел следующее утверждение:
Cassandra имеет функцию удаления устаревшей информации после определенного периода времени. В Европе существуют строгие законы о приватности личных данных, согласно которым они должны храниться не более определенного срока (штаб-квартира Mollom находится в Бельгии). В этом плане эта функция очень удобна. Эта функция опять же избавляет от необходимости реализовывать данный функционал вручную.

Вопрос следующий: как это настроить в ней? =)
Ни в документации, ни в примерах подобного поведения не описано. Нашел лишь упоминание про автоматическое удаление при превышении некоторого объема данных: adamman71.blogspot.com/2010/11/timestamps-in-cassandra.html
Error #4: Cassandra secretly registers some kind of history about each columns entries

No. The only historical information stored by Cassandra during a write is the value of the timestamp of the corresponding column value. Any previous column value (i.e., Cassandra value-timestamp pair) is simply overwritten if its timestamp is older. The content is lost forever. No safety net. No second chance. No resurrection.

This is not to be confused with 'tombstoning', which happens when users explicitly delete previously created 'records'. Instead of performing the wipe out immediately, Cassandra flags the 'record' as 'to be deleted later'. It remains in a limbo state for some time, before being removed forever. However, the record content is lost as soon as it is flagged for delete. No safety net. No second chance. No resurrection.


You could say that Cassandra stores data on a big heap, but you only have access to the crust. And, every write with a higher Cassandra timestamp value results in an extra layer on the heap. Cassandra automatically deletes whatever is below the crust, synchronously or asynchronously.
  • Вопрос задан
  • 3101 просмотр
Решения вопроса 1
EXSlim
@EXSlim
Это появилось в 0.7+. Мне подошло отлично :)
Просто указываете ttl в секундах для column (пример, не укажу — зависит от драйвера для вашего языка)
+Важно помнить как кассандра удаляет данные(т.е. места не станет больше после истечения ttl), но это уже другой вопрос.

www.datastax.com/dev/blog/whats-new-cassandra-07-expiring-columns
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@mannar Автор вопроса
Ага, спасибо. Написал пост и через полдня нашел TTL. К сожалению, только сейчас добрался
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы