Разработчик С++ распределённой СУБД
Требования
Местоположение и тип занятости
Компания
Компания, которая развивает самую популярную в России поисковую систему и десятки других сервисов
Описание вакансии
Условия работы
Современные сервисы строятся поверх СУБД, которые хранят таблицы и предоставляют доступ к строкам по ключу или посредством SQL-запросов. Один из важных критериев выбора СУБД — масштабируемость. В Яндексе необходима отказоустойчивая работа на большом количестве машин, поэтому мы разрабатываем собственную систему для внутреннего использования. Ее ключевые особенности:
- горизонтальная масштабируемость;
- распределенные транзакции со строгой консистентностью;
- распределенное выполнение запросов;
- тесная интеграция с MapReduce, фактически поддерживается работа на одних и тех же данных;
- поддержка как таблиц с доступом по ключу, так и очередей сообщений.
Вам предстоит развивать распределенную обработку запросов и добавлять функциональность, привычную пользователям реляционных СУБД.
Что нужно делать:
- разрабатывать распределенную, отказоустойчивую и нагруженную систему, которая работает на тысячах машин и одновременно используется многими проектами в Яндексе;
- реализовывать новые протоколы для взаимодействия узлов кластера;
- применять на практике знание алгоритмов и умение их придумывать;
- заниматься системным программированием.
Мы ждем, что вы:
- знаете C++ и разрабатывали под Linux;
- знаете классические алгоритмы и структуры данных;
- понимаете принципы работы операционных систем;
- разрабатывали многопоточные и асинхронные приложения;
- ответственны и аккуратны.
Будет плюсом, если вы:
- разрабатывали движок обработки запросов;
- работали с сетью и разрабатывали сетевые приложения;
- умеете программировать на Python.