To avoid reshuffling in my job, I started using DataStreamUtils.reinterpretAsKeyedStream to avoid having to do another keyBy for the same key. The BackEndState is RocksDB.
When the job recovers after a failure, the ProcessFunction after the keyBy restores its Keyed State correctly, while the Process function after reinterpretAsKeyedStream does not recover the Keyed State.
I have checked the data written by the checkpoints and there is a reference to the sate.
If I change and use keyBy instead of DataStreamUtils.reinterpretAsKeyedStream the Keyed State is recovered as expected.
Is the DataStreamUtils.reinterpretAsKeyedStream function not intended to use Keyed State?