Appreciate it if anyone can help confirm and share thoughts. On Wed, Feb 22, 2023 at 11:46 PM Alan Zhang <shuai....@gmail.com> wrote:
> Hi Beam devs. > > According to the Fn State API design doc[1], the state type > MultimapUserState is intended for supporting MapState/SetState. And the > implementation[2] for this state type is ready on the SDK harness side. > Each runner will be responsible for integrating it if they want to leverage > it. > > Today Beam uses StateRequestHandlers to define handler interfaces for > other state types, e.g. MultimapSideInputHandler for > MultimapSideInput, BagUserStateHandler for BagUserState, etc.[3] This is > great since each runner can implement these handler interfaces then the Fn > state API integration is done. > > In order to support MapState/SetState, I think we will need to provide > a MultimapUserStateHandler interface in StateRequestHandlers and allow the > runners to implement it. > > What do you think? > > Feel free to correct me if there is any incorrect understanding since I'm > new to the Beam world. > > Btw, I saw Flink Python used MultimapSideInput to support MapState[4] but > I think this is not recommended since MultimapUserState is available today. > But please correct me if I'm wrong. > > > [1] https://s.apache.org/beam-fn-state-api-and-bundle-processing > <https://s.apache.org/beam-fn-state-api-and-bundle-processing> > [2] https://github.com/apache/beam/pull/15238 > [3] > https://github.com/apache/beam/blob/master/runners/java-fn-execution/src/main/java/org/apache/beam/runners/fnexecution/state/StateRequestHandlers.java#L192 > [4] > https://cwiki.apache.org/confluence/display/FLINK/FLIP-153%3A+Support+state+access+in+Python+DataStream+API > -- > Thanks, > Alan > -- Thanks, Alan