Files
nis2/project-tasks/p14-a-flink-checkpoints.md
T

6.2 KiB
Raw Blame History

P14-A. Flink: режимы контрольных точек

  • Версия и дата проверки: 1.1, 07.09.2026.
  • Статус: готово к назначению.

Статья и исходные материалы

  • Основная статья: Paris Carbone и соавт. — Apache Flink: Stream and Batch Processing in a Single Engine. IEEE Data Engineering Bulletin 2015, 11 страниц.
  • Кратко о статье: Apache Flink объединяет потоковую и пакетную обработку в общем распределённом движке с состоянием операторов. Для согласованного восстановления система строит распределённые снимки состояния, не останавливая весь поток обработки. В этом проекте сравниваются режимы контрольных точек по накладным расходам, задержке и времени exactly-once-восстановления.
  • Почему результат актуален: исходная статья описывает раннюю архитектуру, но система стала устойчивой отраслевой платформой и продолжает активно развиваться; Flink 2.3.0 выпущен в июне 2026 года. Проект использует современную фиксированную версию и проверяет сохраняющийся механизм распределённых контрольных точек.
  • Артефакты и данные: apache/flink под Apache-2.0; доступны актуальная стабильная ветвь, отдельная LTS-ветвь и официальный локальный режим без обязательного облака. Зафиксированные ревизии: apache/flink@81389aca7136 (Apache-2.0).
  • Что уже предоставляет артефакт: Flink уже реализует stateful-обработку, выровненные и невыровненные checkpoint, метрики и восстановление. Движок и локальное развёртывание разрешено использовать как основу.

Обязательный результат

  • Проверяемый вопрос или утверждение: асинхронные контрольные точки обеспечивают exactly-once-восстановление состояния с измеримым компромиссом между накладными расходами, задержкой обработки и временем восстановления после отказа.
  • Технический результат: Построить stateful-конвейер Flink с повторяемым источником, уникальными идентификаторами событий, файловым приёмником и автоматической проверкой эквивалентности результатов. Автоматизировать противодавление и отказ TaskManager.
  • Обязательное приращение команды: Создать предусмотренный конвейер с повторяемыми событиями и файловым приёмником, автоматизировать противодавление и отказ TaskManager и самостоятельно проверять выходные идентификаторы и агрегаты. Провести сопоставимые серии двух режимов checkpoint.
  • Эксперимент: Сравнить выровненные и невыровненные контрольные точки при двух уровнях противодавления и одном отказе. Измерить throughput, p95/p99, длительность и размер checkpoint, время восстановления, пропуски, дубликаты и ошибки агрегатов; выполнить не менее трёх серий.
  • Границы выводов: накладные расходы и exactly-once-восстановление проверяются для одного локального конвейера, двух режимов противодавления и отказа TaskManager; результат не охватывает внешние источники и приёмники или крупный кластер.
  • Ресурсный профиль: одна машина, CPU, 4–8 ГБ памяти и локальная файловая система; Docker и облако необязательны. При нехватке памяти уменьшаются параллелизм и состояние, но сохраняются отдельные процессы, контрольные точки, отказ и автоматическая проверка корректности.

Содержательные направления

  • нагрузка и эталон корректности.
  • отказоустойчивость, контрольные точки и инструментирование.
  • экспериментальные серии, статистический анализ и собственное расширение.

Возможное продолжение

Варьировать размер состояния и период контрольных точек, исследовать savepoint и rescaling, сравнить хранилища состояния либо предложить политику переключения режима при противодавлении.