H
HireSeeker
яндекс

SRE в службу разработки динамических таблиц YTsaurus

яндекс · 30 мая

Зарплата не указана

Динтаблицы YTsaurus — это многопользовательская NewSQL-СУБД, развёрнутая на тысячи машин и обслуживающая много пользователей и проектов внутри Яндекса. К сервису предъявляются высокие требования по доступности и времени отклика. Динтаблицы можно использовать там, где ответ нужно получить за миллисекунды, а данные должны быть доступными при обновлениях и внезапных отключениях одной из локаций.

Эксплуатация такой большой и нагруженной системы требует, с одной стороны, хорошо построенных процессов надёжности, а с другой — большого количества низкоуровневых оптимизаций и выстроенных на разных уровнях степеней защиты от сбоев и перегрузок. Задачи по созданию таких решений относят к областям Site Reliability Engineering и Performance Engineering.

Вам предстоит разбираться с узкими местами работы системы, в том числе на стыке взаимодействия с операционной системой и железом, и вырабатывать решения, нацеленные на устранение этих узких мест. Это может быть оптимизация кода, добавление новых механизмов квотирования или перестраивание существующих процессов — как показывает практика, в проблемах эксплуатации не всегда можно ограничиться каким-то одним подходом.

Оптимизация потребления CPU

Архитектурно YTsaurus состоит из нескольких компонентов, каждый из которых реализован в парадигме тредпулов и файберов. Это не всегда эффективно и надёжно по CPU: во-первых, перемещение файбера между тредпулами приводит к задержкам, и при перегрузках эти задержки могут быть очень высоки, а во-вторых, конфигурация с выделенными тредпулами плохо подходит для запуска в контейнерах с малым числом ядер. Вам предстоит разобраться во внутренней архитектуре и оптимизировать сервис, чтобы снизить время обработки запросов.

Диагностика задержек в сети

Запросы в YTsaurus выполняются распределённо и, следовательно, чувствительны к сетевым задержкам. По имеющимся инструментам сложно понять, на каком уровне происходит задержка: где-то в стеке на стороне YTsaurus или в нижележащей инфраструктуре. Вам нужно реализовать средство мониторинга сетевых задержек на стороне YTsaurus, чтобы можно было понять, на какой стороне нужно искать причину долгой передачи данных.

Внедрение SLA

Придумать и внедрить SLA для сервиса управления базами данных — непростая и творческая задача. Вам совместно с другими разработчиками предстоит придумать и внедрить контракт, который был бы понятен как эксплуатации YTsaurus, так и сервисам, хранящим свои базы данных в YTsaurus.

Больше о бэкенде в Яндексе — в канале Yandex for Backend

* Умеете программировать на C++, готовы писать на Go и Python
* Любите погружаться в особенности работы операционной системы и железа
* Нацелены на построение надёжного сервиса для пользователей

* Работали с низкоуровневыми оптимизациями
* Знакомы с bpftools
* Знаете теорию SRE и то, как выстраиваются SRE-процессы