2016-11-17 1 views
2

У меня есть кластерный кэш-хранилище, настроенный с помощью Infinispan (8.2.4 Final) с использованием SoftIndexFileStore для сохранения.Что делать со старыми файлами в SoftIndexFileStore в постоянном хранилище кеша Infinispan?

В документации указывается, что если срок действия истекает, Компакт-менеджер не сможет очистить записи с очисткой, а использование диска будет увеличиваться сверхурочно. Из UserGuide:

При записи сохраняются с истечением, SIFS не может обнаружить, что некоторые из этих записей истек. Поэтому такой старый файл не будет скомпилирован (метод AdvancedStore.purgeExpired() не реализован). Это может привести к чрезмерному использованию пространства файловой системы.

Большинство моих данных истекают, но некоторые из них нуждаются в постоянном неопределенном значении. Я не могу просто запускать работу по очистке каждый раз, пока вы удаляете все файлы данных.

Как справиться с этим использованием использованного диска? После нескольких недель работы я вижу много файлов, которые не были изменены за несколько недель. Безопасно ли удалять старые файлы, которые не были изменены, например. менее месяца назад?

ответ

2

No; старые файлы больше не будут изменяться (они записываются один раз, а затем считаются неизменяемыми до удаления). Удаление их вручную может привести к сбоям, поскольку эти файлы указаны в индексе.

К сожалению, когда хранилище итерировано, и элементы поиска истек, Compactor.free() не вызывается, потому что может быть несколько одновременных итераций, и мы могли бы позвонить ему много раз для одной записи.

Правильное решение будет осуществлять периодический (или JMX-инициированный) процесс, который проходит через старые файлы, вычисляет пространство, занимаемое истекшими записями, и файлы расписаний, которые превышают некоторый порог для уплотнения. Это должно идти в Compactor. Пожалуйста, см. SIFS javadoc для общего описания конструкции.

Если вы заинтересованы в разработке этой функции, и вы хотите обсудить это, перейдите по ссылке Infinispan forum.

+0

Итак, теперь нет простого способа справиться с этим увеличением использования диска прямо сейчас. Мне нужно будет создать какую-то процедуру, которая останавливает один узел, удаляет все файлы данных и индексов, а затем возвращает узел обратно, чтобы он объединил кластер и реплицировал все данные. – bitwalker

+0

Все еще привыкший к SO, не знал о правиле редактирования минут 5 минут. Просто хотел поблагодарить вас за ваш ответ. – bitwalker

+0

Да, я должен признать, что при проектировании магазина у меня нет, хотя об истечении записей. Пожалуйста, укажите проблему с этой функцией в https://issues.jboss.org/ –

Смежные вопросы