Конференция завершена. Ждем вас на HighLoad++ в следующий раз!

Exactly once-передача данных без материализации

Архитектуры, масштабируемость

Архитектурные паттерны

Доклад принят в программу конференции

Целевая аудитория

Разработчики реалтайм-процессингов, разработчики баз данных.

Тезисы

Доклад будет о том, как мы научились более эффективно передавать данные между нашими сервисами.
С сохранением exactly once и отказоустойчивости мы уменьшили материализацию потока промежуточных данных на дисках на 90% и примерно на столько же снизили latency.

Подробнее на простом примере:
Пусть у нас есть много входных очередей (например, kafka) с событиями, каждое событие содержит идентификатор стейта StateId и относится к соответствующему стейту. И мы хотим в реальном времени считать агрегаты произвольной сложности (= обновлять стейты) по входным событиям с семантикой exactly once.

Для эффективной работы такой схемы обновления стейтов в хранилище нужна какая-то локальность по ключам, поэтому входные данные нужно сначала пошардировать примерно так же, как шардированы данные в хранилище.

Тогда в этом простом случае получается, что нужно два сервиса: один читает входные события и пишет их в промежуточную очередь пошардировано (resharder), другой читает уже шардированные события и обновляет стейты в соответствии с ними (aggregator).

Что плохо в этой схеме? То, что весь поток событий необходимо писать через промежуточную очередь, а это большой поток на записи на диски и, соответственно, много железа! А ведь еще есть небольшая задержка.

То есть мы решаем проблему: как передать данные от resharder'а aggregator'у с наименьшей материализацией на дисках, с наименьшими задержками и при этом отказоустойчиво и с exactly once.

Занимается высоконагруженными сервисами потоковой обработки.

Яндекс

Яндекс — технологическая компания, которая создаёт инновационные продукты на основе машинного обучения и нейронных сетей. Команда талантливых математиков и программистов развивает самую популярную в России поисковую систему и более 85 пользовательских сервисов, которые помогают людям в повседневных заботах. Основные бизнес-направления: поиск и электронная коммерция, сервисы объявлений, медиасервисы, онлайн-заказ такси и еды, беспилотные автомобили, продукты для рекламодателей и владельцев бизнеса. Яндекс также активно развивает проекты с открытым исходным кодом, например, библиотеку машинного обучения CatBoost.

Видео

Другие доклады секции

Архитектуры, масштабируемость