Добавить в корзинуПозвонить
Найти в Дзене
DigiNews

Бэкап сайта «лег» из-за GIF-ки с друзьями весом 1,6 МБ, которая размножилась 246 173 раза и превысила лимиты файловой системы Linux EXT4

Одна анимация реакции, часто дублируемая участниками сообщества в чатах, добавила 377 ГБ к квоте на резервное копирование сайта. Проблема возникла из-за GIF с танцем Дженнифер Энистон и политики безопасности Discourse. — tomshardware.com Одна анимация реакции, часто используемая участниками сообщества сайта в чатах, привела к увеличению квоты на резервное копирование на 377 ГБ и даже могла вызвать сбой процесса резервного копирования. GIF-изображение «танца счастья» Дженнифер Энистон весит 1,6 МБ, и в рассматриваемом случае оно было продублировано 246 173 раза в резервной копии, пишет технический блогер Discourse Джейк Голдсборо. Эта проблема была вызвана, осмелимся сказать, чрезмерным использованием GIF-файла с танцем счастья, а также реализацией политики безопасности файлов. Устранение этой проблемы оказалось не совсем простым. Discourse — это компания и проект с открытым исходным кодом, создающий одну из самых широко используемых современных платформ для обсуждения в сообществах, ко

Одна анимация реакции, часто дублируемая участниками сообщества в чатах, добавила 377 ГБ к квоте на резервное копирование сайта. Проблема возникла из-за GIF с танцем Дженнифер Энистон и политики безопасности Discourse. — tomshardware.com

Одна анимация реакции, часто используемая участниками сообщества сайта в чатах, привела к увеличению квоты на резервное копирование на 377 ГБ и даже могла вызвать сбой процесса резервного копирования. GIF-изображение «танца счастья» Дженнифер Энистон весит 1,6 МБ, и в рассматриваемом случае оно было продублировано 246 173 раза в резервной копии, пишет технический блогер Discourse Джейк Голдсборо. Эта проблема была вызвана, осмелимся сказать, чрезмерным использованием GIF-файла с танцем счастья, а также реализацией политики безопасности файлов. Устранение этой проблемы оказалось не совсем простым. Discourse — это компания и проект с открытым исходным кодом, создающий одну из самых широко используемых современных платформ для обсуждения в сообществах, которая в настоящее время обслуживает более 22 000 онлайн-сообществ. Ее платформа чата в реальном времени позволяет пользователям вставлять эмодзи и GIF-файлы в свои обсуждения, чтобы оживить дебаты. Но функция «безопасной загрузки» платформы означает, что «когда файл перемещается между контекстами безопасности (например, из личного сообщения в публичный пост), система создает новую копию со случайным SHA1», — объясняет Голдсборо. «Исходное содержимое идентично, но Discourse рассматривает его как новый файл». Таким образом, популярное изображение или GIF-файл реакции распространяется по постам, репостам и личным сообщениям, и каждый контекст создает еще одну копию файла.
Первая попытка Discourse исправить ситуацию с перегрузкой системы дубликатами заключалась в отслеживании исходного контента по его хешу. Затем, во время резервного копирования, загрузки группировались по хешу, и загружался только первый файл в каждой группе. Для всех дубликатов создавались жесткие ссылки.
Это казалось элегантным решением, пока один из более крупных клиентов Discourse не обратил внимание всех на предел файловой системы ext4, составляющий примерно 65 000 жестких ссылок на inode. В основном случае резервное копирование сработало с этим первым исправлением, но «вместо одной загрузки для всех 246 173 дубликатов мы получили одну загрузку плюс ~181 000 резервных загрузок после достижения лимита», — объясняет блог компании. «Не та победа, которую я ожидал».
Невероятно дублированным файлом, который создал 377 ГБ раздувания, был танец счастья Рэйчел из «Друзей». Таким образом, проблемный сайт, очевидно, был довольно «счастливым», а GIF-файл реакции «использовался постоянно в постах, личных сообщениях, везде», — отметили в Discourse.
К счастью, Discourse удалось найти исправление для своего предыдущего исправления. По сути, это новое исправление начинается так же, как и старое, с создания жестких ссылок. Но когда
файловая система выдает сообщение об ошибке EMLINK (слишком много жестких ссылок), она локально копирует файл и рассматривает новый файл как «основной» до тех пор, пока снова не достигнет лимита. Эта новая мера «работает на любой файловой системе, не требует настройки», — с некоторым удовлетворением заявляет Discourse.
В заключение Discourse подчеркивает уроки, извлеченные из этой сбивающей с толку лихорадки дублирования анимированных GIF-файлов, и с иронией отмечает, что «теперь я знаю, что Дженнифер Энистон может проводить стресс-тестирование инфраструктуры».

Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.

Автор – Mark Tyson

Оригинал статьи