[
https://issues.apache.org/jira/browse/FLINK-5790?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15865156#comment-15865156
]
ASF GitHub Bot commented on FLINK-5790:
---------------------------------------
GitHub user shixiaogang opened a pull request:
https://github.com/apache/flink/pull/3305
[FLINK-5790][StateBackend] Use list types when ListStateDescriptor extends
StateDescriptor
1. Now the state serializer, instead of the element serializer, is stored
in `ListStateDescriptor`.
2. `ArrayListTypeInfo` is introduced to help create serializers with the
element type.
3. `ArrayListSerializer` is moved to the package
org.apache.flink.api.common.typeutils.base to avoid cyclic dependencies.
4. Old implementation of `ListStateDescriptor` is kept in the migration
package for back compatibility.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/alibaba/flink flink-5790
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/flink/pull/3305.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #3305
----
commit e8e11b7965365178453ab6eab78c6d5ac98f3537
Author: xiaogang.sxg <[email protected]>
Date: 2017-02-14T05:39:30Z
Use list types when ListStateDescriptor extends StateDescriptor
commit ba8cdc919fc2e66b3e81f6f8566140bef53a9b96
Author: xiaogang.sxg <[email protected]>
Date: 2017-02-14T06:22:25Z
Support back compatibility for ListStateDescriptor
----
> Use list types when ListStateDescriptor extends StateDescriptor
> ---------------------------------------------------------------
>
> Key: FLINK-5790
> URL: https://issues.apache.org/jira/browse/FLINK-5790
> Project: Flink
> Issue Type: Improvement
> Reporter: Xiaogang Shi
> Assignee: Xiaogang Shi
>
> Flink keeps the state serializer in {{StateDescriptor}}, but it's the
> serializer of list elements that is put in {{ListStateDescriptor}}. The
> implementation is a little confusing. Some backends need to construct the
> state serializer with the element serializer by themselves.
> We should use an {{ArrayListSerializer}}, which is composed of the serializer
> of the element, in the {{ListStateDescriptor}}. It helps the backend to avoid
> constructing the state serializer.
> If a backend needs customized serialization of the state (e.g.
> {{RocksDBStateBackend}}), it still can obtain the element serializer from the
> {{ArrayListSerializer}}.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)