Я не спрашиваю, для чего нужен шаблон широковещания, а конкретно для состояния широковещания. В обоих в этом примере и в этом при обработке передаваемых элементов они добавляются / помещаются в BroadcastState:
public void processBroadcastElement(
Pattern pattern,
Context ctx,
Collector<Tuple2<Long, Pattern>> out) throws Exception
{
// store the new pattern by updating the broadcast state
BroadcastState<Void, Pattern> bcState = ctx.getBroadcastState(patternDesc);
// storing in MapState with null as VOID default value
bcState.put(null, pattern);
}
Предположим, что вместо выполнения что мы добавили Pattern в локальный список или HashMap. В чем будет проблема с этим? В документации говорится, что важно, чтобы каждый параллельный экземпляр сохранял свой собственный BroadcastState таким же образом, как и другие экземпляры, чтобы при изменении масштабирования было достигнуто детерминированное поведение c. Но в этом случае каждый параллельный экземпляр всегда будет нуждаться во всех шаблонах, поэтому все, что происходит при масштабировании, не имеет значения.
Я что-то неправильно понимаю?