Разработчик С++ распределённой СУБД

MoscowC++, Linux, BackendSearch portal, InfrastructureSpecialist
Большое количество данных в Яндексе хранится и обрабатывается в системе под названием YT. В YT объединены несколько интерфейсов, которые во внешнем мире зачастую реализуются в разных продуктах: распределённая файловая система, отказоустойчивый сервис метаинформации и блокировок, обработка данных в парадигме MapReduce. Также в YT есть три вида горизонтально масштабируемых таблиц для выполнения большого количества запросов в реальном времени:
  • Обычные таблицы с данными. Можно писать в них и читать из них по ключу, а также выполнять запросы в синтаксисе, похожем на SQL.
  • Распределённые очереди сообщений. С помощью таких таблиц можно обрабатывать данные в модели producer-consumer.
  • Реплицированные таблицы. С помощью них можно делать нативную репликацию между кластерами YT. Своевременность и exactly-once доставку данных до всех реплик обеспечит сама система.
Таблицы поддерживают распределённые транзакции, в которых может участвовать много узлов кластера одновременно. Тесная интеграция с MapReduce позволяет внутри YT совмещать batch и real-time обработку на одних и тех же данных.
Мы ищем коллег, которым интересно развивать обработку данных в реальном времени.

Мы ждём, что вы:

  • знаете C++ и разрабатывали под Linux;
  • знаете классические алгоритмы и структуры данных;
  • понимаете принципы работы операционных систем;
  • разрабатывали многопоточные и асинхронные приложения;
  • ответственны и аккуратны.

Приветствуется, если вы:

  • работали с сетью и разрабатывали сетевые приложения;
  • знакомы с ядром Linux;
  • умеете программировать на Python.

Вам предстоит:

  • Разрабатывать распределённую, отказоустойчивую и нагруженную систему, которая работает на тысячах машин и одновременно используется многими проектами в Яндексе.
  • Реализовывать новые протоколы для взаимодействия узлов кластера между собой.
  • Применять на практике знание алгоритмов и умение их придумывать.
  • Заниматься системным программированием.