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
>
>
>
>

Reply via email to