[FLINK-36117] Add an adaptor to convert KeyedStateBackend into AsyncKeyedStateBackend.
What is the purpose of the change
This pull request implements the AsyncKeyedStateBackend interface for RocksDBKeyedStateBackend and HeapKeyedStateBackend, enabling both RocksDBStateBackend and HeapStateBackend to create V2 states.
Brief change log
1.Introduce the new ValueStateWrapper class, which implements the v2.ValueState interface and can be constructed from a ValueState.
2.Introduce the new StateDescriptorTransformer class, which can convert a v2.StateDescriptor to a StateDescriptor.
3.Implement AsyncKeyedStateBackend interface for RocksDBKeyedStateBackend.
4.Implement AsyncKeyedStateBackend interface for HeapKeyedStateBackend.
Verifying this change
This change is a simple interface implementation without any test coverage.
Does this pull request potentially affect one of the following parts:
- Dependencies (does it add or upgrade a dependency): (yes / no)
- The public API, i.e., is any changed class annotated with
@Public(Evolving): (yes / no) - The serializers: (yes / no / don't know)
- The runtime per-record code paths (performance sensitive): (yes / no / don't know)
- Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (yes / no / don't know)
- The S3 file system connector: (yes / no / don't know)
Documentation
- Does this pull request introduce a new feature? (yes / no)
- If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)
CI report:
- 1ff90e8fa23fe07eaa2871f5703bd98e9f7bf12b Azure: SUCCESS
Bot commands
The @flinkbot bot supports the following commands:@flinkbot run azurere-run the last Azure build
And a rebase is needed since there are conflicts with master branch.