[ 
https://issues.apache.org/jira/browse/BEAM-13930?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kenneth Knowles updated BEAM-13930:
-----------------------------------
    Status: Open  (was: Triage Needed)

> Address StateSpec inconsistency between Runner and Fn API
> ---------------------------------------------------------
>
>                 Key: BEAM-13930
>                 URL: https://issues.apache.org/jira/browse/BEAM-13930
>             Project: Beam
>          Issue Type: Improvement
>          Components: beam-model, sdk-java-core, sdk-py-core
>            Reporter: Luke Cwik
>            Assignee: Luke Cwik
>            Priority: P2
>
> The ability to mix and match runners and SDKs is accomplished through two 
> portability layers:
> 1. The Runner API provides an SDK-and-runner-independent definition of a Beam 
> pipeline
> 2. The Fn API allows a runner to invoke SDK-specific user-defined functions
> Apache Beam pipelines support executing stateful DoFns[1]. To support this 
> execution the Runner API defines multiple user state specifications:
> * ReadModifyWriteStateSpec
> * BagStateSpec
> * OrderedListStateSpec
> * CombiningStateSpec
> * MapStateSpec
> * SetStateSpec
> The Fn API[2] defines APIs[3] to get, append and clear user state currently 
> supporting a BagUserState and MultimapUserState protocol.
> Since there is no clear mapping between the Runner API and Fn API state 
> specifications, there is no way for a runner to know that it supports a given 
> API necessary to support the execution of the pipeline. The Runner will also 
> have to manage additional runtime metadata associated with which protocol was 
> used for a type of state so that it can successfully manage the state’s 
> lifetime once it can be garbage collected.
> Please see the doc[4] for further details and a proposal on how to address 
> this shortcoming.
> 1: https://beam.apache.org/blog/stateful-processing/
> 2: 
> https://github.com/apache/beam/blob/3ad05523f4cdf5122fc319276fcb461f768af39d/model/fn-execution/src/main/proto/beam_fn_api.proto#L742
> 3: https://s.apache.org/beam-fn-state-api-and-bundle-processing
> 4: http://doc/1ELKTuRTV3C5jt_YoBBwPdsPa5eoXCCOSKQ3GPzZrK7Q



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to