Github user sihuazhou commented on a diff in the pull request: https://github.com/apache/flink/pull/5518#discussion_r169988602 --- Diff: flink-runtime/src/main/java/org/apache/flink/runtime/state/KeyedStateBackend.java --- @@ -61,8 +61,9 @@ * over it keys are not supported. * @param state State variable for which existing keys will be returned. * @param namespace Namespace for which existing keys will be returned. + * @param namespaceSerializer the serializer for the namespace. */ - <N> Stream<K> getKeys(String state, N namespace); + <N> Stream<K> getKeys(String state, N namespace, TypeSerializer<N> namespaceSerializer); --- End diff -- Aha, I also noticed that `RegisteredKeyedBackendStateMetaInfo` contains the namespace serializer. But there is one thing that confuses me, I found that it looks like one `ColumnFamilyHandle` can correspond to multiple namespace serializer but I am not sure about this, so I introduced this additional parameter. Am I misunderstanding something? Can one `ColumnFamilyHandle` only correspond to one namespace serializer?