Команда Yandex Infrastructure совместно с Яндекс Рекламой открыла исходный код YTsaurus Flow под лицензией Apache 2.0. Это специализированный движок для потоковой обработки данных, спроектированный для высоконагруженных рекомендательных систем, где критичны низкие задержки и отсутствие дублей или потерь сообщений даже при сбоях оборудования.
В отличие от классических решений вроде Kafka Streams или Flink, YTsaurus Flow глубоко интегрирован в экосистему YTsaurus, используя общие механизмы транзакций для атомарного изменения состояния и метаданных. Это позволяет разработчикам сосредоточиться на бизнес-логике, делегируя управление состоянием и восстановление после сбоев платформе.
Ключевые преимущества и архитектура
Фреймворк решает несколько фундаментальных проблем real-time пайплайнов:
- Гарантия exactly-once: По умолчанию система гарантирует отсутствие дублей и потерь. При необходимости гарантии можно ослабить до at-least-once или at-most-once для экономии ресурсов.
- Нативная производительность: Ядро написано на C++, что обеспечивает значительную экономию ресурсов по сравнению с JVM-решениями. Поддерживается разработка бизнес-логики на C++, Python, Go, Kotlin и Java.
- Автоматическая балансировка: Система автоматически адаптирует количество партиций и распределяет их по машинам в зависимости от нагрузки, что критично для пайплайнов с сотнями узлов.
- Работа со временем событий: Реализованы механизмы вотермарков и таймеров для корректной обработки отстающих данных, вдохновленные моделью Dataflow.
Результаты внедрения
На примере реального сервиса Яндекс показал, как переход на YTsaurus Flow повлиял на метрики производительности:
| Метрика | До внедрения YTsaurus Flow | После внедрения |
|---|---|---|
| Задержка поставки данных для дообучения моделей | 10–20 часов | ~2 часа |
| Пропускная способность | — | Более 100 ГБ/с |
| Гарантии обработки | Зависели от внешних компонентов | Exactly-once по умолчанию |
Открытие кода YTsaurus Flow расширяет возможности open-source экосистемы YTsaurus, выложенной на GitHub в марте 2023 года, и предлагает альтернативу коммерческим и open-source движкам для задач, требующих строгой согласованности данных в реальном времени.
Источник: Habr ↗
