Почему мемы множатся в облаке

Когда пользователь загружает картинку, сервис обычно получает файл и сохраняет его как объект — отдельную последовательность данных с адресом и служебной информацией. Если тысячи людей отправляют один и тот же мем, система может записать много одинаковых объектов. Для каждого нужны место и операции хранения, хотя визуально это одна и та же картинка.

Но совпадение на глаз не всегда означает совпадение файла. Пересланное изображение могли сжать, обрезать или пересохранить: оно выглядит так же, но его данные уже отличаются. Даже мелкая правка — например, новая подпись — превращает мем в отдельный вариант.

Как находят точные копии

Чтобы обнаружить дубликат, система может вычислить для файла короткий цифровой отпечаток — хеш. Он меняется при изменении содержимого, поэтому одинаковые отпечатки помогают быстро найти точные копии, не сравнивая каждый файл целиком. Затем сервис может оставить один экземпляр данных, а для остальных загрузок хранить ссылки на него.

Такой приём называют дедупликацией: повторяющиеся данные сохраняют один раз, а не в каждой копии. Он экономит пространство, особенно когда множество пользователей загружает одни и те же файлы. Однако дедупликация устроена по-разному: не всякий сервис ищет повторы между аккаунтами, а в некоторых системах разделять хранилище пользователей невыгодно или нежелательно по соображениям безопасности и конфиденциальности.

Одинаковый мем — не всегда один объект

Даже если копии удалось объединить, сервису всё равно нужно помнить, кто и в каком сообщении поделился изображением: от этого зависят доступ, удаление и отображение. Поэтому под «терабайтами одинаковых мемов» могут скрываться и реальные повторные файлы, и множество ссылок на один файл, и почти одинаковые версии.

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