Обработка с отслеживанием состояния в Beam — используется ли состояние для всех оконных панелей?

Apache Beam недавно представил ячейки состояний с помощью аннотаций StateSpec и @StateId с частичной поддержкой в ​​Apache Flink и Google Cloud Dataflow.

Мой вопрос касается сборки мусора состояния в случае, когда DoFn с отслеживанием состояния используется в оконном потоке. Обычно состояние удаляется (сборщик мусора) бегуном по истечении срока действия окна (т. Е. Водяной знак проходит через конец окна). Однако рассмотрим случай, когда оконные панели срабатывают раньше, а сработавшие панели отбрасываются:

input.apply(Window.<MyElement>into(CalendarWindows.days(1)) .triggering(AfterWatermark.pastEndOfWindow() .withEarlyFirings( AfterProcessingTime.pastFirstElementInPane() .plusDelayOf(Duration.standardMinutes(10)) )) .discardingFiredPanes() .apply(ParDo.of(new MyStatefulDofn()));

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

Источник: ledsshop.ru

Стиль жизни - Здоровье!