Проблема
Кажется, я - единственный кто не знал как работает "управляемый кеш".
Давайте проверим знаете ли вы! А он работает так:
Если "управляемый кеш" включен (а это рекомендуется и он включен по умолчанию!), то при изменении/добавлении/удалении одного элемента инфоблока удаляются ВСЕ файлы кеша ВСЕХ элементов этого инфоблока. Не знали?
Техподдержка подтверждает - это действительно так и это не баг! И я единственный, кто чувствует дискомфорт от этого? Поделитесь в комментариях своим мнением!
Представьте, у вас есть магазин с 100 000 элементами и вы каждый день добавляете по 1 элементу (товару). Следовательно, каждый день все файлы кеша всех 100 000 товаров маркируются на удаление (конечно, если они успели создаться за день). Ок, а если эти элементы создают сами пользователи и создают круглосуточно - получается в битриксе кеша нет т.к. при каждом удалении/изменении/добавлении 1 элемента трётся весь кеш всех элементов инфоблока.
Я обнаружил это свойство "управляемого кеша" когда нашёл большое количество файлов кеша в очереди на удаление (файлы с именем ".~" ) в папках
bitrix/cache/s1/bitrix/news.detail
bitrix/cache/s1/bitrix/news.list
Агенты на кроне (раз в минуту) не справлялись с удалением десятков тысяч файлов в очереди - проверьте может у вас тоже это заметно. Представляете какая нагрузка на файловую систему!?
Люди, скажите, только у меня одного такой резонанс случается, когда вижу как битрикс помечает на удаление десятки тысяч файлов валидного кеша!?
Как исправить
Мне кажется, "управляемый кеш" должен работать так:
При добавлении элемента должен создавать файл кеша (точнее при первом его вызове из компонента).
При изменении элемента должен маркироваться на удаление файл кеша ИЗМЕНЯЕМОГО элемента и далее при первом вызове из компонента будет создаваться новый файл кеша этого элемента.
При удалении элемента должен маркироваться на удаление только файл кеша УДАЛЯЕМОГО элемента.
Не должны ни в коем случае удаляться все файлы кеша всех элементов инфоблока. Я не могу представить себе ситуацию когда надо удалять ВСЕ валидные файлы кеша при добавлении/изменении/удалении ОДНОГО единственного элемента!
Сбрасывать весь кеш или сбрасывать по страницам....