Как стать автором
Обновить

Комментарии 6

У кого-то пухнет индекс из-за частых (каждый день) обновлений всего RT индекса?

Зависит от многих факторов:

  • обновления - UPDATE или REPLACE?

  • есть ли дисковые чанки? Обновления касаются документов из них?

  • делается ли OPTIMIZE?

Могу предположить, что в вашем случае сценарий такой: много replace'ов -> делается дисковый чанк при наступлении rt_mem_limit -> много реплэйсов -> делается новый дисковый чанк с теми же документами и килл-листом, который подавляет документы из первого дискового чанка -> и т.д. А OPTIMIZE не запускается. Важно понять суть реплэйсов и килл-листов.

Хорошо, что в Manticore Search 4 есть автоматический OPTIMIZE и включен по дефолту. Во многих случаях этого достаточно и о подобных проблемах можно забыть.

REPLACE
Да, были какие-то файлы помимо *.ram, OPTIMIZE как раз убрал эти файлы.
Но сам *.ram файл не меняется в размерах и больше раза в 2,5 от нового индекса за 3-6 месяцев.
Делал TRUNCATE и заново заполнял индекс, таким образом удавалось отвоевать место.
Правда, там места несколько десятков мегабайт.
При REPLACE каждый день меняется на самом деле одно поле (расчитанная сортировка, из-за лимита на количество полей в сортировке)
Реже добавляются массово новые поля в индекс.

Если при REPLACE меняется одно поле и это поле атрибут (не full-text), то может попробовать UPDATE? Хотя в Sphinx (и Manticore до 4-й версии) с ним могут быть проблемы в RT индексах при апдейте и одновременном мердже (апдейты могут потеряться или крэш случиться), но если аккуратно, то может помочь.

Тоже предстоит аналогичный апдейт в какой-то момент. Но в чем смысл выбора Sphinx 3, почему не Manticore? Если правильно понимаю, Sphinx сейчас обновляется одним человеком и практически мертв + закрытый код. Manticore вроде бы open source и развивается.

Зря я к вам не пошел в 2010 году, в 2021 бы меньше денег бы истратили :)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий