masteryhx commented on code in PR #19679:
URL: https://github.com/apache/flink/pull/19679#discussion_r903278313


##########
flink-state-backends/flink-statebackend-rocksdb/src/main/java/org/apache/flink/contrib/streaming/state/RocksDBKeyedStateBackend.java:
##########
@@ -477,6 +478,50 @@ KeyGroupedInternalPriorityQueue<T> create(
         }
     }
 
+    @Override
+    public <N, S extends State, V> S upgradeKeyedState(
+            TypeSerializer<N> namespaceSerializer, StateDescriptor<S, V> 
stateDescriptor)
+            throws Exception {
+        StateFactory stateFactory = getStateFactory(stateDescriptor);
+        Tuple2<ColumnFamilyHandle, RegisteredKeyValueStateBackendMetaInfo<N, 
V>> registerResult =
+                tryRegisterKvStateInformation(stateDescriptor, 
namespaceSerializer, noTransform());
+        
Preconditions.checkState(kvStateInformation.containsKey(stateDescriptor.getName()));
+        kvStateInformation.computeIfPresent(
+                stateDescriptor.getName(),
+                (stateName, kvStateInfo) ->
+                        new RocksDbKvStateInfo(
+                                kvStateInfo.columnFamilyHandle,
+                                new RegisteredKeyValueStateBackendMetaInfo<>(
+                                        kvStateInfo.metaInfo.snapshot())));
+        return stateFactory.createState(
+                stateDescriptor, registerResult, 
RocksDBKeyedStateBackend.this);

Review Comment:
   Thanks a lot for the suggestion! I also think 2nd option seems better.
   Besides this problem, It could also solve the next problem you mentioned 
below.
   Because what I concerned in the next problem is how to update the serializer 
when one serializer COMPATIBLE_AS_IS with the other.
   I will try to modify it using the 2nd option.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to