[ https://issues.apache.org/jira/browse/FLINK-8780?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16458520#comment-16458520 ]
ASF GitHub Bot commented on FLINK-8780: --------------------------------------- Github user alpinegizmo commented on a diff in the pull request: https://github.com/apache/flink/pull/5922#discussion_r184968333 --- Diff: docs/dev/stream/state/broadcast_state.md --- @@ -0,0 +1,281 @@ +--- +title: "The Broadcast State Pattern" +nav-parent_id: streaming_state +nav-pos: 2 +--- +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> + +* ToC +{:toc} + +[Working with State](state.html) described operator state which is either **evenly** distributed among the parallel +tasks of an operator, or state which **upon restore**, its partial (task) states are **unioned** and the whole state is +used to initialize the restored parallel tasks. + +A third type of supported *operator state* is the *Broadcast State*. Broadcast state was introduced to support use-cases +where some data coming from one stream is required to be broadcasted to all downstream tasks, where it is stored locally +and is used to process all incoming elements on the other stream. As an example where broadcast state can emerge as a +natural fit, one can imagine a low-throughput stream containing a set of rules which we want to evaluate against all +elements coming from another stream. Having the above type of use-cases in mind, broadcast state differs from the rest +of operator states in that: + 1. it has a map format, + 2. it is only available to streams whose elements are *broadcasted*, + 3. the only operation available to a stream with broadcast state is to be *connected* to another keyed or non-keyed stream, + 4. such a broadcast stream can have *multiple broadcast states* with different names. + +## Provided APIs + +To show the provided APIs, we will start with an example before presenting their full functionality. As our running +example, we will use the case where we have a stream of objects of different colors and shapes and we want to find pairs +of objects of the same color that follow a certain pattern, *e.g.* a rectangle followed by a triangle. We assume that +the set of interesting patterns evolve over time. --- End diff -- the set of interesting patterns evolves over time. > Add Broadcast State documentation. > ---------------------------------- > > Key: FLINK-8780 > URL: https://issues.apache.org/jira/browse/FLINK-8780 > Project: Flink > Issue Type: Bug > Components: DataStream API, Documentation, Streaming > Affects Versions: 1.5.0 > Reporter: Kostas Kloudas > Assignee: Kostas Kloudas > Priority: Critical > Fix For: 1.5.0 > > -- This message was sent by Atlassian JIRA (v7.6.3#76005)