Pacemaker: обход графа

Введение

Одним из компонентов отказоустойчивых кластеров от ClusterLabs является менеджер ресурсов pacemaker. В его обязанности входит восстановление работоспособности сервисов при старте или сбое узлов кластера. Для этого строится некоторый ориентированный граф, в узлах которого находятся действия, которые нужно выполнить для перевода кластера в работоспособное состояние. Пример графа можно посмотреть по https://clusterlabs.org/pacemaker/doc/deprecated/en-US/Pacemaker/2.0/html/Pacemaker_Administration/_visualizing_the_action_sequence.html Типичным случаем использования является управление десятком ресурсов (СУБД+web). В компании YADRO система pacemaker используется для управления довольно большим количеством ресурсов. К сожалению, он не рассчитан на такой объем данных, что выражается в слишком долгой работе с графом. Требуется переработать алгоритмы построения и обхода графа, чтобы добиться приемлемой производительности.

Требования

Текущее время обработки графа составляет около одной минуты. Требуемое время — порядка миллисекунд. В качестве кодовой базы можно рассматривать оригинальную реализацию на гитхабе https://github.com/ClusterLabs/pacemaker

Планируемые результаты

Проект довольно обширный, в качестве отчуждаемых результатов могут выступать: * алгоритмы + реализация вне pacemaker * минимальная рабочая реализация в рамках pacemaker * продуктовое решение

Этапы разработки

  1. Знакомство с технологиями — развернуть простой HA кластер на двух виртуалках с 5-6 ресурсами.
  2. Развернуть тестовый пример от YADRO. Изучить построенный flame graph.
  3. Изучить существующий алгоритм построения и обхода графа действий
  4. Дальше начинается творческая часть: ускорить работу с графом.
  5. Провести замеры производительности. Получить численные характеристики исходного и своего решений.

План коммуникаций

Еженедельные звонки (30 минут) с представителями YADRO для демонстрации результатов; Коммуникация в Telegram; Инструкция по правильному написанию вопросов: http://tinyurl.com/stack-hints

Порядок приёмки и оценивания

  • A — готовое решение, оформленное в виде принятого PR в проект, положительный отзыв от заказчика. Хороший обзор.
  • B/C — решение в каком-то виде наличествует, но производительность не самая хорошая. Есть косяки, заказчик удовлетворился результатом. Обзор так себе.
  • D/E — решение в каком-то виде наличествует, есть крупные косяки, заказчик недоволен, но оно как-то работает. Производительность не улучшилась или улучшилась незначительно. Обзора нет.

Остальные кафедральные требования также в силе: текст, доклад, отзыв etc.

Требования к студенту

Владение Linux, C/C++.

Уровень

3 курс, Бакалаврская ВКР, Магистерская ВКР


Руководитель

Смирнов Кирилл Константинович


Консультант

Смирнов Кирилл Константинович


Источник

YADRO