Интервал контрольных точек Flink и размер состояния - PullRequest
0 голосов
/ 02 мая 2019

Мы выполняем несколько мгновенных заданий, каждый из которых имеет источник кафки и несколько приемников кассандры. Мы в значительной степени полагаемся на временные окна с функцией сокращения, на ключевые данные. Наш tps в настоящее время составляет около 100-200. У меня есть несколько вопросов о контрольных точках и размере сохраняемого состояния: 1. Поскольку мы используем функцию Reduce, размер состояния зависит только от количества открытых окон? Если у часового и у минутного окон один и тот же обвинитель, следует ли ожидать одинакового размера состояния? По какой-то причине мы видели, что у часового окна гораздо больше состояния, чем у минутного окна, а у дневного окна больше состояние, чем у часового окна. 2. Что считается разумным количеством открытых окон? Что считается большим государством? Каковы наиболее распространенные временные интервалы контрольных точек (у нас это 5 секунд, что мне кажется слишком частым), как долго мы должны ожидать, чтобы время сохранения контрольной точки занимало разумное хранилище для 1 ГБ состояния? Как можно проверить контрольные точки состояния (которые я читал в некоторых системах) за разумное время? Я знаю, что это абстрактные вопросы, но я не был уверен, что наша настройка flink работает так, как ожидалось, и чего ожидать, когда наши данные растут. 3. Увидели время асинхронной и синхронизированной контрольной точки в пользовательском интерфейсе. Кто-нибудь может объяснить, почему Flink использует оба?

Спасибо всем, кто может помочь с любым из вопросов.

1 Ответ

2 голосов
/ 03 мая 2019

Существует множество факторов, которые могут влиять на производительность контрольных точек, в том числе, какую версию Flink вы используете, какой бэкэнд состояния вы используете и как он настроен, а также какие временные окна задействованы (например, скользящие или падающие окна). ). Инкрементные контрольные точки могут иметь огромное влияние, когда участвуют ТБ государства.

Одним из факторов, который может оказать большое влияние, является количество различных ключей, задействованных для разных временных интервалов. Вы указали, что это окна с ключами, и я ожидаю, что в течение часа будет использоваться гораздо больше разных ключей, чем в обычную минуту. Окна создаются лениво, когда им назначено первое событие, поэтому будет создано гораздо больше окон с ключами для окна продолжительностью в один час, чем для окна длиной в одну минуту. Тот же эффект будет иметь место для окон с дневным ключом, но в меньшей степени.

Каждый из операторов вашей работы проходит (надеюсь кратковременную) синхронную фазу во время обработки контрольной точки независимо от того, выполняется ли основная часть контрольной точки синхронно или асинхронно. В бэкэндах состояния на основе кучи поддерживаются синхронные и асинхронные моментальные снимки - для оптимальной производительности вам потребуются асинхронные моментальные снимки.

...