Class AbstractReducingState<K,N,V>
- java.lang.Object
-
- org.apache.flink.runtime.state.v2.AbstractKeyedState<K,N,V>
-
- org.apache.flink.runtime.state.v2.AbstractReducingState<K,N,V>
-
- Type Parameters:
K
- The type of key the state is associated to.V
- The type of values kept internally in state.
- All Implemented Interfaces:
AggregatingState<V,V>
,AppendingState<V,V,V>
,MergingState<V,V,V>
,ReducingState<V>
,State
,InternalAggregatingState<K,N,V,V,V>
,InternalAppendingState<K,N,V,V,V,V>
,InternalKeyedState<K,N,V>
,InternalMergingState<K,N,V,V,V,V>
,InternalPartitionedState<N>
,InternalReducingState<K,N,V>
- Direct Known Subclasses:
ForStReducingState
public class AbstractReducingState<K,N,V> extends AbstractKeyedState<K,N,V> implements InternalReducingState<K,N,V>
A default implementation ofReducingState
which delegates all async requests toStateRequestHandler
.
-
-
Field Summary
Fields Modifier and Type Field Description protected ReduceFunction<V>
reduceFunction
-
Fields inherited from class org.apache.flink.runtime.state.v2.AbstractKeyedState
stateRequestHandler
-
-
Constructor Summary
Constructors Constructor Description AbstractReducingState(StateRequestHandler stateRequestHandler, ReducingStateDescriptor<V> stateDescriptor)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(V value)
Updates the operator state accessible byAppendingState.get()
by adding the given value to the list of values.StateFuture<Void>
asyncAdd(V value)
Updates the operator state accessible byAppendingState.asyncGet()
by adding the given value to the list of values asynchronously.StateFuture<V>
asyncGet()
Returns the current value for the state asynchronously.StateFuture<V>
asyncGetInternal()
Get internally stored value.StateFuture<Void>
asyncMergeNamespaces(N target, Collection<N> sources)
Merges the state of the current key for the given source namespaces into the state of the target namespace.StateFuture<Void>
asyncUpdateInternal(V valueToStore)
Update internally stored value.V
get()
Returns the current value for the state.V
getInternal()
Get internally stored value.void
mergeNamespaces(N target, Collection<N> sources)
Merges the state of the current key for the given source namespaces into the state of the target namespace.void
updateInternal(V valueToStore)
Update internally stored value.-
Methods inherited from class org.apache.flink.runtime.state.v2.AbstractKeyedState
asyncClear, clear, getStateDescriptor, getStateRequestHandler, getValueSerializer, handleRequest, handleRequestSync, setCurrentNamespace
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.flink.runtime.state.v2.internal.InternalPartitionedState
setCurrentNamespace
-
Methods inherited from interface org.apache.flink.api.common.state.v2.State
asyncClear, clear
-
-
-
-
Field Detail
-
reduceFunction
protected final ReduceFunction<V> reduceFunction
-
-
Constructor Detail
-
AbstractReducingState
public AbstractReducingState(StateRequestHandler stateRequestHandler, ReducingStateDescriptor<V> stateDescriptor)
-
-
Method Detail
-
asyncGet
public StateFuture<V> asyncGet()
Description copied from interface:AppendingState
Returns the current value for the state asynchronously. 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.NOTE TO IMPLEMENTERS: if the state is empty, then this method should return
null
wrapped by a StateFuture.- Specified by:
asyncGet
in interfaceAppendingState<K,N,V>
- Returns:
- The operator state value corresponding to the current input or
null
wrapped by aStateFuture
if the state is empty.
-
asyncAdd
public StateFuture<Void> asyncAdd(V value)
Description copied from interface:AppendingState
Updates the operator state accessible byAppendingState.asyncGet()
by adding the given value to the list of values asynchronously. The next timeAppendingState.asyncGet()
is called (for the same state partition) the returned state will represent the updated list.null value is not allowed to be passed in.
- Specified by:
asyncAdd
in interfaceAppendingState<K,N,V>
- Parameters:
value
- The new value for the state.
-
get
public V get()
Description copied from interface:AppendingState
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.NOTE TO IMPLEMENTERS: if the state is empty, then this method should return
null
.- Specified by:
get
in interfaceAppendingState<K,N,V>
- Returns:
- The operator state value corresponding to the current input or
null
if the state is empty.
-
add
public void add(V value)
Description copied from interface:AppendingState
Updates the operator state accessible byAppendingState.get()
by adding the given value to the list of values. The next timeAppendingState.get()
is called (for the same state partition) the returned state will represent the updated list.If null is passed in, the behaviour is undefined (implementation related).
- Specified by:
add
in interfaceAppendingState<K,N,V>
- Parameters:
value
- The new value for the state.
-
asyncMergeNamespaces
public StateFuture<Void> asyncMergeNamespaces(N target, Collection<N> sources)
Description copied from interface:InternalMergingState
Merges the state of the current key for the given source namespaces into the state of the target namespace.- Specified by:
asyncMergeNamespaces
in interfaceInternalMergingState<K,N,V,V,V,V>
- Parameters:
target
- The target namespace where the merged state should be stored.sources
- The source namespaces whose state should be merged.
-
mergeNamespaces
public void mergeNamespaces(N target, Collection<N> sources)
Description copied from interface:InternalMergingState
Merges the state of the current key for the given source namespaces into the state of the target namespace.- Specified by:
mergeNamespaces
in interfaceInternalMergingState<K,N,V,V,V,V>
- Parameters:
target
- The target namespace where the merged state should be stored.sources
- The source namespaces whose state should be merged.
-
asyncGetInternal
public StateFuture<V> asyncGetInternal()
Description copied from interface:InternalAppendingState
Get internally stored value.- Specified by:
asyncGetInternal
in interfaceInternalAppendingState<K,N,V,V,V,V>
- Returns:
- internally stored value.
-
asyncUpdateInternal
public StateFuture<Void> asyncUpdateInternal(V valueToStore)
Description copied from interface:InternalAppendingState
Update internally stored value.- Specified by:
asyncUpdateInternal
in interfaceInternalAppendingState<K,N,V,V,V,V>
- Parameters:
valueToStore
- new value to store.
-
getInternal
public V getInternal()
Description copied from interface:InternalAppendingState
Get internally stored value.- Specified by:
getInternal
in interfaceInternalAppendingState<K,N,V,V,V,V>
- Returns:
- internally stored value.
-
updateInternal
public void updateInternal(V valueToStore)
Description copied from interface:InternalAppendingState
Update internally stored value.- Specified by:
updateInternal
in interfaceInternalAppendingState<K,N,V,V,V,V>
- Parameters:
valueToStore
- new value to store.
-
-