Одна из наших Apache луч работающая через FlinkRunner имеет странное поведение с размером контрольной точки . Бэкэнд состояния основан на файлах. Задание получает трафик c один раз в день в течение часа и затем простаивает, пока не получит больше данных.
Конвейер не использует никакой стратегии управления окнами. Это просто чтение из источника, объединение различных значений из этого источника и запись его в приемник. Мы только записываем состояние в неограниченном источнике.
Он медленно увеличивается в размере по мере того, как мы обрабатываем больше данных, однако размер контрольной точки существенно не уменьшается после прекращения использования данных.
Мы думали, что это потенциально может быть шея bottle с приемником базы данных, однако такое же поведение присутствует, если мы удаляем приемник и просто выводим данные.
Поведение похоже на ступенчатый график, например
- контрольная точка = 120KB (контрольная точка начального размера)
- контрольная точка = 409MB (начинает прием данных)
- контрольная точка = 850 МБ (обработка данных отставания)
- контрольная точка = 503 МБ (данные о завершении обработки)
- контрольная точка = 1,2 ГБ (начинается обработка новые данные и отставание)
- контрольная точка = 700MB (данные законченной обработки)
- контрольная точка = 700MB (новый начальный размер для контрольной точки)
- ...