[ https://issues.apache.org/jira/browse/FLINK-5024?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15847080#comment-15847080 ]
ASF GitHub Bot commented on FLINK-5024: --------------------------------------- Github user aljoscha commented on a diff in the pull request: https://github.com/apache/flink/pull/3243#discussion_r98710331 --- Diff: flink-core/src/main/java/org/apache/flink/api/common/state/StateDescriptor.java --- @@ -20,34 +20,29 @@ import org.apache.flink.annotation.PublicEvolving; import org.apache.flink.api.common.ExecutionConfig; -import org.apache.flink.api.common.typeinfo.TypeInformation; -import org.apache.flink.api.common.typeutils.TypeSerializer; -import org.apache.flink.api.java.typeutils.TypeExtractor; -import org.apache.flink.core.memory.DataInputViewStreamWrapper; -import org.apache.flink.core.memory.DataOutputViewStreamWrapper; import org.apache.flink.util.Preconditions; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; import java.io.Serializable; import static java.util.Objects.requireNonNull; /** - * Base class for state descriptors. A {@code StateDescriptor} is used for creating partitioned - * {@link State} in stateful operations. This contains the name and can create an actual state - * object given a {@link StateBackend} using {@link #bind(StateBackend)}. - * + * Base class for state descriptors. A {@code StateDescriptor} is used for creating + * {@link State keyed state} in stateful operations. The descriptor contains the name of the state, --- End diff -- Just a quick note: `StateDescriptors` are also used for non-keyed state, i.e. operator state. > Add SimpleStateDescriptor to clarify the concepts > ------------------------------------------------- > > Key: FLINK-5024 > URL: https://issues.apache.org/jira/browse/FLINK-5024 > Project: Flink > Issue Type: Improvement > Components: State Backends, Checkpointing > Reporter: Xiaogang Shi > Assignee: Xiaogang Shi > > Currently, StateDescriptors accept two type arguments : the first one is the > type of the created state and the second one is the type of the values in the > states. > The concepts however is a little confusing here because in ListStates, the > arguments passed to the StateDescriptors are the types of the list elements > instead of the lists. It also makes the implementation of MapStates difficult. > I suggest not to put the type serializer in StateDescriptors, making > StateDescriptors independent of the data structures of the values. > A new type of StateDescriptor named SimpleStateDescriptor can be provided to > abstract those states (namely ValueState, ReducingState and FoldingState) > whose states are not composited. > The states (e.g. ListStates and MapStates) can implement their own > descriptors according to their data structures. -- This message was sent by Atlassian JIRA (v6.3.15#6346)