Как мы изобрели светофор в кластере Ignite
Программный комитет ещё не принял решения по этому докладу
Целевая аудитория
Тезисы
Доклад о том, как в вычислительной платформе на базе ignite решалась проблема синхронизации процессов расчетов и обновления данных.
Дано: 1. вычислительная платформа в кластере со стабильной топологией на 3ТБ off-heap (12 узлов + оркестратор распределения заданий и данных) 2. 25к базовых заданий за 4 часа, каждое из которых содержит от сотни до нескольких тысяч подзаданий 3. 16 потоков управления базовыми заданиями в оркестраторе и по 60 потоков в каждом узле
Проблема: встроить в процесс расчетов с минимальным влиянием на производительность инкрементальных обновлений - каждые 10 минут подливать 2ГБ обновлений.
Штатные средства ignite и готовые решния с рынка не подошли, по этому мы разработали собственный сервис управления внешними блокировками на архитектуре event-loop с ключевыми особенностями: 1. группировка блокировок и управление очередью групп, сохраняя идентичность каждой блокировки по отдельности 2. организация ожидания клиентских процессов 3. управление timeout ожидания и удержания блокировки 4. возможность разворота как сервиса ignite (но ядро абсолютно не зависит от ignite, можно создать через new и использовать где захочется) 5. метрики и детальное логгирование 6. ручное управление блокировками при необходимости
Разберем особенности нашего кейса и почему не подошло решение с рынка. Посмотрим на архитектуру решения и некоторые тонкости реализации.
Разрабатывает на java + Spring c 2019 года.
Последний год совмещает роль главного разработчика и TeamLead одной из команд на проекте упомянутом в докладе.
До этого основной опыт сосредоточен в роли ведущего разработчика и впоследствии IT-лида на банковском проекте (кластер из трех продуктов с 30-ю интеграциями)
Специализация: архитектура приложения, интеграции, синхронизация данных, ETL-процессы, создания платформенных компонентов, наставничество.
Видео
Другие доклады секции
Архитектура и масштабируемость