[ https://issues.apache.org/jira/browse/FLINK-18316?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
ASF GitHub Bot updated FLINK-18316: ----------------------------------- Labels: pull-request-available (was: ) > Add a dynamic state registration primitive for Stateful Functions > ----------------------------------------------------------------- > > Key: FLINK-18316 > URL: https://issues.apache.org/jira/browse/FLINK-18316 > Project: Flink > Issue Type: New Feature > Components: Stateful Functions > Reporter: Tzu-Li (Gordon) Tai > Assignee: Tzu-Li (Gordon) Tai > Priority: Major > Labels: pull-request-available > > Currently, using the {{PersistedValue}} / {{PersistedTable}} / > {{PersistedAppendingBuffer}} primitives, the user can only eagerly define > states prior to function instance activation using the {{Persisted}} field > annotation. > We propose to add a primitive that allows them to register states dynamically > after activation (i.e. during runtime), along the lines of: > {code} > public MyStateFn implements StatefulFunction { > @Persisted > private final PersistedStateProvider provider = new > PersistedStateProvider(); > public MyStateFn() { > PersistedValue<String> valueState = provider.getValue(...); > } > void invoke(Object input) { > PersistedValue<String> anotherValueState = provider.getValue(...); > } > } > {code} > Note how you can register state during instantiation (in the constructor) and > in the invoke method. Both registrations should be picked up by the runtime > and bound to Flink state. > This will be useful for a few scenarios: > - Could enable us to get rid of eager state spec definitions in the YAML > modules for remote functions in the future. > - Will allow new state to be registered in remote functions, without shutting > down the StateFun cluster. > - Moreover, this approach allows us to differentiate which functions have > dynamic state and which ones have only eager state, which might be handy in > the future in case there is a need to differentiate. -- This message was sent by Atlassian Jira (v8.3.4#803005)