2015-01-02 8 views
1

Я играю с Python и некоторыми из NoSql DB для создания хранилища файлов (в основном из-за встроенной репликации), я попробовал его с MongoDB и его работой, но из-за природы «Write Greedy» MongoDB я переехал в cassandra и реализовал то же самое. Пока он работает, я хочу знать (указать мне на документы, что будет хорошо), как дефрагментировать данные в cassandra. я объясню это на примере, скажем, я загружаю 200 МБ-файл, а затем 20 МБ-файл. теперь размер данных в кассандре составляет ~ 220 МБ. Если я иду и удаляю 200-мегабайтный файл, то также вижу, что размер данных составляет ~ 200 МБ, поэтому пространство не возвращается. В mongoDB есть команда, чтобы получить (использовать одно и то же пространство для новых файлов). Я хочу знать, как это можно сделать в cassandra. Я запутываю b/w compress & уплотнение.Как выполнить дефрагментацию на таблице cassandra

И для хранения данных я частично разделяю файл, а затем сохраняю его как «blob» в таблице.

ответ

0

Cassandra очищает удаленные и истекшие данные, используя процесс, называемый compaction.

В то время как вы можете принудительно использовать сжатие, используя nodetool compact, я бы не рекомендовал это, так как лучше настроить уплотнение и позволить ему произойти в фоновом режиме.

Это может не полностью сделать трюк, поскольку cassandra имеет свойство конфигурации с именем «gc_grace_seconds», которое предотвращает удаление данных, помеченных как удаленных (с надгробием), до тех пор, пока не пройдет gc_grace_seconds. Значение по умолчанию - 10 дней, но вы можете настроить его на меньшее значение или даже сделать его 0, чтобы отключить надгробия все вместе.

+0

Thanks andy :) мобильное приложение не позволяет мне повышать или, как ожидалось, ans –

+0

Не стоит беспокоиться, рада помочь! :) –