Class ForStListState<K,​N,​V>

  • Type Parameters:
    K - The type of the key.
    N - The type of the namespace.
    V - The type of the value.
    All Implemented Interfaces:
    org.apache.flink.api.common.state.v2.AppendingState<V,​org.apache.flink.api.common.state.v2.StateIterator<V>,​Iterable<V>>, org.apache.flink.api.common.state.v2.ListState<V>, org.apache.flink.api.common.state.v2.MergingState<V,​org.apache.flink.api.common.state.v2.StateIterator<V>,​Iterable<V>>, org.apache.flink.api.common.state.v2.State, org.apache.flink.runtime.state.v2.internal.InternalAppendingState<K,​N,​V,​V,​org.apache.flink.api.common.state.v2.StateIterator<V>,​Iterable<V>>, org.apache.flink.runtime.state.v2.internal.InternalKeyedState<K,​N,​V>, org.apache.flink.runtime.state.v2.internal.InternalListState<K,​N,​V>, org.apache.flink.runtime.state.v2.internal.InternalMergingState<K,​N,​V,​V,​org.apache.flink.api.common.state.v2.StateIterator<V>,​Iterable<V>>, org.apache.flink.runtime.state.v2.internal.InternalPartitionedState<N>, ForStInnerTable<K,​N,​List<V>>

    public class ForStListState<K,​N,​V>
    extends org.apache.flink.runtime.state.v2.AbstractListState<K,​N,​V>
    implements org.apache.flink.api.common.state.v2.ListState<V>, ForStInnerTable<K,​N,​List<V>>
    The AbstractListState implement for ForStDB.

    ForStStateBackend must ensure that we set the StringAppendOperator on the column family that we use for our state since we use the merge() call.

    • Field Summary

      • Fields inherited from class org.apache.flink.runtime.state.v2.AbstractKeyedState

        stateRequestHandler
    • Constructor Summary

      Constructors 
      Constructor Description
      ForStListState​(org.apache.flink.runtime.asyncprocessing.StateRequestHandler stateRequestHandler, org.forstdb.ColumnFamilyHandle columnFamily, org.apache.flink.api.common.typeutils.TypeSerializer<V> valueSerializer, Supplier<org.apache.flink.runtime.state.SerializedCompositeKeyBuilder<K>> serializedKeyBuilderInitializer, N defaultNamespace, Supplier<org.apache.flink.api.common.typeutils.TypeSerializer<N>> namespaceSerializerInitializer, Supplier<org.apache.flink.core.memory.DataOutputSerializer> valueSerializerViewInitializer, Supplier<org.apache.flink.core.memory.DataInputDeserializer> valueDeserializerViewInitializer)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      org.apache.flink.api.common.state.v2.StateFuture<Void> asyncMergeNamespaces​(N target, Collection<N> sources)  
      ForStDBGetRequest<K,​N,​List<V>,​?> buildDBGetRequest​(org.apache.flink.runtime.asyncprocessing.StateRequest<?,​?,​?,​?> stateRequest)
      Build a ForStDBGetRequest that belong to this ForStInnerTable with the given stateRequest.
      ForStDBPutRequest<K,​N,​List<V>> buildDBPutRequest​(org.apache.flink.runtime.asyncprocessing.StateRequest<?,​?,​?,​?> stateRequest)
      Build a ForStDBPutRequest that belong to ForStInnerTable with the given stateRequest.
      List<V> deserializeValue​(byte[] valueBytes)
      Deserialize the given bytes value to POJO value.
      org.forstdb.ColumnFamilyHandle getColumnFamilyHandle()
      Get the columnFamily handle corresponding to table.
      void mergeNamespaces​(N target, Collection<N> sources)  
      byte[] serializeKey​(ContextKey<K,​N> contextKey)
      Serialize the given key to bytes.
      byte[] serializeValue​(List<V> valueList)
      Serialize the given value to the outputView.
      • Methods inherited from class org.apache.flink.runtime.state.v2.AbstractListState

        add, addAll, asyncAdd, asyncAddAll, asyncGet, asyncUpdate, get, update
      • Methods inherited from class org.apache.flink.runtime.state.v2.AbstractKeyedState

        asyncClear, clear, getStateRequestHandler, getValueSerializer, handleRequest, handleRequestSync, setCurrentNamespace
      • Methods inherited from interface org.apache.flink.api.common.state.v2.AppendingState

        add, asyncAdd, asyncGet, get
      • Methods inherited from interface org.apache.flink.runtime.state.v2.internal.InternalPartitionedState

        setCurrentNamespace
      • Methods inherited from interface org.apache.flink.api.common.state.v2.ListState

        addAll, asyncAddAll, asyncUpdate, update
      • Methods inherited from interface org.apache.flink.api.common.state.v2.State

        asyncClear, clear
    • Constructor Detail

      • ForStListState

        public ForStListState​(org.apache.flink.runtime.asyncprocessing.StateRequestHandler stateRequestHandler,
                              org.forstdb.ColumnFamilyHandle columnFamily,
                              org.apache.flink.api.common.typeutils.TypeSerializer<V> valueSerializer,
                              Supplier<org.apache.flink.runtime.state.SerializedCompositeKeyBuilder<K>> serializedKeyBuilderInitializer,
                              N defaultNamespace,
                              Supplier<org.apache.flink.api.common.typeutils.TypeSerializer<N>> namespaceSerializerInitializer,
                              Supplier<org.apache.flink.core.memory.DataOutputSerializer> valueSerializerViewInitializer,
                              Supplier<org.apache.flink.core.memory.DataInputDeserializer> valueDeserializerViewInitializer)
    • Method Detail

      • getColumnFamilyHandle

        public org.forstdb.ColumnFamilyHandle getColumnFamilyHandle()
        Description copied from interface: ForStInnerTable
        Get the columnFamily handle corresponding to table.
        Specified by:
        getColumnFamilyHandle in interface ForStInnerTable<K,​N,​V>
      • serializeKey

        public byte[] serializeKey​(ContextKey<K,​N> contextKey)
                            throws IOException
        Description copied from interface: ForStInnerTable
        Serialize the given key to bytes.
        Specified by:
        serializeKey in interface ForStInnerTable<K,​N,​V>
        Parameters:
        contextKey - the key to be serialized.
        Returns:
        the key bytes
        Throws:
        IOException - Thrown if the serialization encountered an I/O related error.
      • serializeValue

        public byte[] serializeValue​(List<V> valueList)
                              throws IOException
        Description copied from interface: ForStInnerTable
        Serialize the given value to the outputView.
        Specified by:
        serializeValue in interface ForStInnerTable<K,​N,​V>
        Parameters:
        valueList - the value to be serialized.
        Returns:
        the value bytes
        Throws:
        IOException - Thrown if the serialization encountered an I/O related error.
      • deserializeValue

        public List<V> deserializeValue​(byte[] valueBytes)
                                 throws IOException
        Description copied from interface: ForStInnerTable
        Deserialize the given bytes value to POJO value.
        Specified by:
        deserializeValue in interface ForStInnerTable<K,​N,​V>
        Parameters:
        valueBytes - the value bytes to be deserialized.
        Returns:
        the deserialized POJO value
        Throws:
        IOException - Thrown if the deserialization encountered an I/O related error.
      • buildDBGetRequest

        public ForStDBGetRequest<K,​N,​List<V>,​?> buildDBGetRequest​(org.apache.flink.runtime.asyncprocessing.StateRequest<?,​?,​?,​?> stateRequest)
        Description copied from interface: ForStInnerTable
        Build a ForStDBGetRequest that belong to this ForStInnerTable with the given stateRequest.
        Specified by:
        buildDBGetRequest in interface ForStInnerTable<K,​N,​V>
        Parameters:
        stateRequest - The given stateRequest.
        Returns:
        The corresponding ForSt GetRequest.
      • buildDBPutRequest

        public ForStDBPutRequest<K,​N,​List<V>> buildDBPutRequest​(org.apache.flink.runtime.asyncprocessing.StateRequest<?,​?,​?,​?> stateRequest)
        Description copied from interface: ForStInnerTable
        Build a ForStDBPutRequest that belong to ForStInnerTable with the given stateRequest.
        Specified by:
        buildDBPutRequest in interface ForStInnerTable<K,​N,​V>
        Parameters:
        stateRequest - The given stateRequest.
        Returns:
        The corresponding ForSt PutRequest.
      • asyncMergeNamespaces

        public org.apache.flink.api.common.state.v2.StateFuture<Void> asyncMergeNamespaces​(N target,
                                                                                           Collection<N> sources)
        Specified by:
        asyncMergeNamespaces in interface org.apache.flink.runtime.state.v2.internal.InternalMergingState<K,​N,​V,​V,​org.apache.flink.api.common.state.v2.StateIterator<V>,​Iterable<V>>
        Overrides:
        asyncMergeNamespaces in class org.apache.flink.runtime.state.v2.AbstractListState<K,​N,​V>
      • mergeNamespaces

        public void mergeNamespaces​(N target,
                                    Collection<N> sources)
        Specified by:
        mergeNamespaces in interface org.apache.flink.runtime.state.v2.internal.InternalMergingState<K,​N,​V,​V,​org.apache.flink.api.common.state.v2.StateIterator<V>,​Iterable<V>>
        Overrides:
        mergeNamespaces in class org.apache.flink.runtime.state.v2.AbstractListState<K,​N,​V>