[
https://issues.apache.org/jira/browse/FLINK-5023?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15687288#comment-15687288
]
ASF GitHub Bot commented on FLINK-5023:
---------------------------------------
Github user aljoscha commented on a diff in the pull request:
https://github.com/apache/flink/pull/2768#discussion_r89129366
--- Diff:
flink-core/src/main/java/org/apache/flink/api/common/state/State.java ---
@@ -20,19 +20,30 @@
import org.apache.flink.annotation.PublicEvolving;
+import java.io.IOException;
+
/**
* Interface that different types of partitioned state must implement.
*
* <p>The state is only accessible by functions applied on a
KeyedDataStream. The key is
* automatically supplied by the system, so the function always sees the
value mapped to the
* key of the current element. That way, the system can handle stream and
state partitioning
* consistently together.
+ *
+ * @param <T> The type of the values in the state.
*/
@PublicEvolving
-public interface State {
-
+public interface State<T> {
/**
- * Removes the value mapped under the current key.
+ * Returns the current value for the state. When the state is not
+ * partitioned the returned value is the same for all inputs in a given
+ * operator instance. If state partitioning is applied, the value
returned
+ * depends on the current operator input, as the operator maintains an
+ * independent state for each partition.
--- End diff --
This is incorrect, we don't maintain state by partition but by key. (This
is not your fault, it was always like this on `ValueState` and you copied it
from there, I just discovered it now when reading your code.)
> Add get() method in State interface
> -----------------------------------
>
> Key: FLINK-5023
> URL: https://issues.apache.org/jira/browse/FLINK-5023
> Project: Flink
> Issue Type: Improvement
> Components: State Backends, Checkpointing
> Reporter: Xiaogang Shi
> Assignee: Xiaogang Shi
>
> Currently, the only method provided by the State interface is `clear()`. I
> think we should provide another method called `get()` to return the
> structured value (e.g., value, list, or map) under the current key.
> In fact, the functionality of `get()` has already been implemented in all
> types of states: e.g., `value()` in ValueState and `get()` in ListState. The
> modification to the interface can better abstract these states.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)