YTsaurus — одна из ключевых инфраструктурных систем Яндекса, которая используется для хранения и обработки данных.
Яндекс работает с эксабайтами данных, которые нужно эффективно хранить, обрабатывать и передавать между приложениями. Для этого мы создали YTsaurus — распределённую платформу, которая сочетает в себе единое хранилище и ряд инструментов для обработки данных под разные сценарии. Почти каждый сервис в Яндексе использует нашу платформу для решения своих задач. Платформа активно развивается, а исходный код выложен в опенсорс.
Внутри YTsaurus есть поддержка целого ряда SQL-диалектов, которые позволяют обращаться к данным. Один из таких диалектов — YQL. Он преобразует SQL-запросы в последовательность MapReduce-операций и/или выполняет их в движке DQ, который и предстоит развивать.
Движок DQ, в отличие от MapReduce, позволяет выполнять части запроса полностью в памяти без промежуточной материализации на диск. Это существенно сокращает накладные расходы и время, затрачиваемое на выполнение всего запроса.
Какие задачи вас ждут
Развитие гибридного режима выполнения запросов
Во время выполнения запроса объём данных часто уменьшается на каждом этапе — из-за фильтрации, пересечений и агрегаций. На определённом этапе использование MapReduce может стать избыточным. В таких случаях выгодно переключиться на выполнение оставшихся операций в движке DQ.
Пользовательский кластер DQ
Пользовательская нагрузка может быть настолько разнообразной, что сложно подобрать универсальные параметры для работы движка. Мы хотим реализовать возможность настройки пользовательского кластера DQ под конкретные сценарии и профили нагрузки.
Ускорение YQL over YT по бенчмаркам
YQL over YT в Яндексе работает на десятках тысяч машин и сотнях тысяч ядер. Нам важно постоянно искать точки для оптимизации исполнения запросов. Мы используем популярные бенчмарки для выявления возможностей улучшения производительности.
Публикации и вклад в продукт
Ваши результаты могут стать основой для публикаций, докладов и выступлений на крупных конференциях, а коммиты будут попадать в общую кодовую базу YTsaurus.
Мы ждем, что вы
- Уверенно владеете C++ и готовы разрабатывать на нём высокопроизводительные системы
- Понимаете, как анализировать производительность, находить узкие места, и готовы предлагать способы решения проблем
- Знаете Python на уровне, достаточном для написания тестов
Будет плюсом, если вы
- Имеете представление, как устроены СУБД, и участвовали в их разработке
- Знаете один из диалектов SQL