not a solution, but a potential workaround. Maybe rename the operator uid so that you can continue to leverage allowNonRestoredState?
On Thu, Oct 29, 2020 at 7:58 AM Peter Westermann <no.westerm...@genesys.com> wrote: > Does that actually allow removing a state completely (vs. just modifying > the values stored in state)? > > > > Ideally, we would want to just interact with state via *KeyedStateStore*. > Maybe it would be possible to add a couple methods there, e.g. like this: > > // List all pre-existing states > > <S extends State, T> List<StateDescriptor<S, T>> listStates(); > > // Completely remove a state > > <S extends State, T> void dropState(StateDescriptor<S, T> stateDescriptor); > > > > > > Thanks, > > Peter > > > > > > > > *From: *Congxian Qiu <qcx978132...@gmail.com> > *Date: *Thursday, October 29, 2020 at 10:38 AM > *To: *Robert Metzger <rmetz...@apache.org> > *Cc: *Peter Westermann <no.westerm...@genesys.com>, "user@flink.apache.org" > <user@flink.apache.org> > *Subject: *Re: Feature request: Removing state from operators > > > > Hi Peter > > Can applyToAllKeys[1] in KeyedStateBackend help you here? but > currently, this is not exposed to users now. > > > > [1] > https://github.com/apache/flink/blob/fada6fb6ac9fd7f6510f1f2d77b6baa06563e222/flink-runtime/src/main/java/org/apache/flink/runtime/state/KeyedStateBackend.java#L65 > > > Best, > > Congxian > > > > > > Robert Metzger <rmetz...@apache.org> 于2020年10月27日周二 下午5:51写道: > > Hi Peter, > > > > I'm adding two committers to this thread who can help answering your > question. > > > > On Mon, Oct 26, 2020 at 3:22 PM Peter Westermann < > no.westerm...@genesys.com> wrote: > > We use the feature for removing stateful operators via the > *allowNonRestoredState* relatively often and it works great. However, > there doesn’t seem to be anything like that for removing state from an > existing operator (that we want to keep). > > Say my operator defines a *MapState* and a *ValueState*. Later on, the > *ValueState* becomes obsolete. In this case, we can remove the actual > data for each key by clearing it out but the state itself is still > referenced in savepoints even if it’s not referenced in code anymore – that > e.g. means one cannot remove any class that was previously used in state. > > Would it be possible to add support for completely removing state from an > operator if it’s no longer referenced in code and *allowNonRestoredState* > is set? (Or to add an explicit “drop this state option” in KeyedStateStore > and OperatorStateStore?) > > > > Thanks, > > Peter > > > >