Как обогнать и перегнать Spark на коротких дистанциях. С++

Доклад отклонён
Александр Боргардт
duckstax

Последние 10 лет занимается исследованием новых подходов и созданием решений в областях рекламы, финтеха и ML.
В область интересов входят вопросы разработки распределенных систем, параллельной и конкурентной обработки информации.
Улучшает мир посредством opensource. cyberduckninja.com

aa.borgardt@yandex.ru
Тезисы

История из жизни стартапа купленного крупной компанией.
Случается, что проверяют много гипотез.
Одна из гипотез выстреливает, но есть проблема реализации гипотезы на python со spark.
Оказывается, что в продакшене на этот несчастный прототип наливают огромную нагрузку и он не справляется.
Не секрет, что бутылочное горлышко у python и spark – работа с ресурсами.
Существуют вполне здравые пути решения проблемы, которые мы пробовали:
поменять подход к обработке входного потока данных;
отказаться от пополнения данных из кластера spark;
отказаться от кластера и работать в один узел и с локальными данными;
отказываться от spark нельзя: слишком много изменений.
Все перечисленные подходы в нашем случае не сработали.

Одно из экстемальных решений проблемы служит переписка некоторого количества api spark на С++ и запуск python из С++.
Причем такой подход будет работать при условии:
работа с большими фрагментами памяти и файлами off python vm;
управление жизненным циклом задач на стороне python;
простота интеграции с текущей кодовой базой.
В докладе я расскажу, какие решения пришлось придумать для того, чтобы заставить все это работать.

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