Class TtlAwareSerializer<T>

java.lang.Object
org.apache.flink.api.common.typeutils.TypeSerializer<T>
org.apache.flink.runtime.state.ttl.TtlAwareSerializer<T>
All Implemented Interfaces:
Serializable

public class TtlAwareSerializer<T> extends org.apache.flink.api.common.typeutils.TypeSerializer<T>
This class wraps a TypeSerializer with ttl awareness. It will return true when the wrapped TypeSerializer is instance of TtlStateFactory.TtlSerializer. Also, it wraps the value migration process between TtlSerializer and non-ttl typeSerializer.
See Also:
  • Constructor Details

    • TtlAwareSerializer

      public TtlAwareSerializer(org.apache.flink.api.common.typeutils.TypeSerializer<T> typeSerializer)
  • Method Details

    • isImmutableType

      public boolean isImmutableType()
      Specified by:
      isImmutableType in class org.apache.flink.api.common.typeutils.TypeSerializer<T>
    • duplicate

      public org.apache.flink.api.common.typeutils.TypeSerializer<T> duplicate()
      Specified by:
      duplicate in class org.apache.flink.api.common.typeutils.TypeSerializer<T>
    • createInstance

      public T createInstance()
      Specified by:
      createInstance in class org.apache.flink.api.common.typeutils.TypeSerializer<T>
    • copy

      public T copy(T from)
      Specified by:
      copy in class org.apache.flink.api.common.typeutils.TypeSerializer<T>
    • copy

      public T copy(T from, T reuse)
      Specified by:
      copy in class org.apache.flink.api.common.typeutils.TypeSerializer<T>
    • getLength

      public int getLength()
      Specified by:
      getLength in class org.apache.flink.api.common.typeutils.TypeSerializer<T>
    • serialize

      public void serialize(T record, org.apache.flink.core.memory.DataOutputView target) throws IOException
      Specified by:
      serialize in class org.apache.flink.api.common.typeutils.TypeSerializer<T>
      Throws:
      IOException
    • deserialize

      public T deserialize(org.apache.flink.core.memory.DataInputView source) throws IOException
      Specified by:
      deserialize in class org.apache.flink.api.common.typeutils.TypeSerializer<T>
      Throws:
      IOException
    • deserialize

      public T deserialize(T reuse, org.apache.flink.core.memory.DataInputView source) throws IOException
      Specified by:
      deserialize in class org.apache.flink.api.common.typeutils.TypeSerializer<T>
      Throws:
      IOException
    • equals

      public boolean equals(Object o)
      Specified by:
      equals in class org.apache.flink.api.common.typeutils.TypeSerializer<T>
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in class org.apache.flink.api.common.typeutils.TypeSerializer<T>
    • migrateValueFromPriorSerializer

      public void migrateValueFromPriorSerializer(TtlAwareSerializer<T> priorTtlAwareSerializer, org.apache.flink.util.function.SupplierWithException<T,IOException> inputSupplier, org.apache.flink.core.memory.DataOutputView target, TtlTimeProvider ttlTimeProvider) throws IOException
      Throws:
      IOException
    • copy

      public void copy(org.apache.flink.core.memory.DataInputView source, org.apache.flink.core.memory.DataOutputView target) throws IOException
      Specified by:
      copy in class org.apache.flink.api.common.typeutils.TypeSerializer<T>
      Throws:
      IOException
    • isTtlEnabled

      public boolean isTtlEnabled()
    • getOriginalTypeSerializer

      public org.apache.flink.api.common.typeutils.TypeSerializer<T> getOriginalTypeSerializer()
    • snapshotConfiguration

      public org.apache.flink.api.common.typeutils.TypeSerializerSnapshot<T> snapshotConfiguration()
      Specified by:
      snapshotConfiguration in class org.apache.flink.api.common.typeutils.TypeSerializer<T>
    • isSerializerTtlEnabled

      public static boolean isSerializerTtlEnabled(org.apache.flink.api.common.typeutils.TypeSerializer<?> typeSerializer)
    • wrapTtlAwareSerializer

      public static org.apache.flink.api.common.typeutils.TypeSerializer<?> wrapTtlAwareSerializer(org.apache.flink.api.common.typeutils.TypeSerializer<?> typeSerializer)