«Яндекс» выложил в опенсорс YaFF (Yet Another Flat Format) — новый формат передачи и чтения данных для высоконагруженных сервисов. Технология позволяет работать с данными, не расходуя ресурсы на их распаковку. Это даёт возможность экономить до 20% вычислительных мощностей.

Современные сервисы и приложения получают данные по сети или с диска в компактном виде. Чаще всего крупные ИТ-компании используют для «упаковки» и передачи данных формат Protobuf. Он удобный и надёжный, но имеет существенный недостаток: полученные данные нужно каждый раз распаковывать. Это ресурсоёмкая операция, на которую уходит до 10% всех мощностей сервиса. Альтернативный формат — FlatBuffers — позволяет читать данные без распаковки, но для перехода на него нужно практически полностью переписать код. Технология «Яндекса» решает эти проблемы.

YaFF (Yet Another Flat Format) можно использовать поверх стандартного формата Protobuf, чтобы считывать данные напрямую — без распаковки. Это позволяет применять YaFF в уже существующих проектах и экономить вычислительные ресурсы, не переписывая код сервиса. Новый формат подойдет банкам и маркетплейсам, телеком-операторам и разработчикам облачных сервисов — всем, для кого критичны скорость обработки данных и эффективность использования «железа».

Технология уже внедрена в рекламной системе «Яндекса». В условиях обработки сотен тысяч запросов в секунду это позволило снизить нагрузку на процессоры на 10–20%. Высвобожденные ресурсы компания направляет на обработку большего числа пользовательских запросов без расширения серверного парка.

Документация и код Yet Another Flat Format опубликованы на платформе GitHub.