Проблема при добавлении новых полей в очень объемные компоненты NetCat

Если у вас сайт на NetCat и если у вас есть компонент, в котором находится очень много объектов (например, 400 тысяч) и если вдруг вы решили добавить в компонент новое поле, вы скорее всего столкнетесь с проблемой. На VPS она проявляется в виде 504 ошибки (вместо сообщения об успешном добавлении поля), а на виртуальном хостинге наверное все просто ляжет...

Дело в том, что Netcat видимо что-то там пишет во все объекты при создании поля, не знаю, что именно, интересующиеся могут проанализировать 675-701 строчки файла \netcat\admin\field\function.inc.php Этот процесс занимает время. Много времени, с учетом размера нашей базы. Очень много времени даже на VPS. update я стал умнее и сообщаю: это не NetCat пишет. Это просто добавляется новое поле в большую таблицу MySQL, что приводит к ее физической перезаписи, в это время в основном работает диск.

При этом сервер создает экземпляр процесса httpd, который занимается обслуживанием наших запросов. Поэтому у того, кто создает поле, вылетает 504 ошибка и на странице создания поля, и на всех остальных страницах сайта. А у остальных людей сайт в это время работает, но выдает сообщение "Ошибка в функции вывода объектов" во всех своих частях, где вызывается этот компонент или любой из его шаблонов.

Любопытно, что наш зависший процесс httpd очевидно в это время ждет ответа от MySQL, который продолжает выполняться, несмотря на 504 ошибку. Таким образом, если просто не закрывать окно браузера и не дергать сайт, все сработает (время ожидания около 5 минут на 4800 МГц. процессоре).

Итак, чтобы создать новое поле в компоненте с 400 тыс. объектов, надо сделать это, и не закрывать браузер, несмотря на 504 ошибку. В соседней вкладке открыть сам сайт (будет 504), и через 4-5 минут она должна заработать сама, без перезагрузки сервера. Что делать владельцам подобных баз, разместивших их на виртуальном хостинге, даже не знаю... Возможно, что ничего - может виртуальные хостинги умеют автоматически масштабироваться и обрабатывать такие кратковременные нагрузки с удвоенным рвением...

Что характерно, сервер (под управлением CentOS 6) умеет отличать браузеры. То есть при работе с сайтом с одного компьютера, но из двух разных браузеров, каждый из них будет обслуживаться отдельным экземпляром процесса httpd. Поэтому в одном браузере будет 504 ошибка, а в соседнем - работающий сайт. Для меня это стало откровением.

Блог

NetCat: техническая поддержка и доработка сайтов

Мы работаем с CMS NetCat уже больше 10 лет. У нас большой опыт и ответственный подход к делу.

далее

Права Доступа в Компонентах: работают не так, как ожидается; но можно накостылить патч

Если в настройках Раздела или Инфоблока NetCat попробовать дать доступ на изменение объекта ВСЕМ, ничего не получится. Просмотр и Добавление работают одним образом, а Изменение, Включение и Удаление -- другим.

далее

Как расставить запятые между тегами на CSS?

Иногда проще что-то сделать на чистом CSS, чем на серверной стороне. Например, расставить запятые между тегами. Попробуем разделить подчеркнутые теги-ссылки на чистом CSS.

далее

Как отресайзить картинки батчем?

Все фотографии, которые вы собираетесь отресайзить, должны быть в одной директории, скажем «uploads». Внутри нее можно сохранить любую структуру директорий. Мы научимся создавать копию этой директории, внутри которой все картинки будут отресайзены, причем только в сторону уменьшения разрешения.

далее

Весь блог тут