Class TtlAwareSerializer<T,S extends org.apache.flink.api.common.typeutils.TypeSerializer<T>>
- java.lang.Object
-
- org.apache.flink.api.common.typeutils.TypeSerializer<T>
-
- org.apache.flink.runtime.state.ttl.TtlAwareSerializer<T,S>
-
- Type Parameters:
T- The data type that the serializer serializes.S- The original serializer the TtlAwareSerializer wraps.
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
TtlAwareSerializer.TtlAwareListSerializer,TtlAwareSerializer.TtlAwareMapSerializer
public class TtlAwareSerializer<T,S extends org.apache.flink.api.common.typeutils.TypeSerializer<T>> extends org.apache.flink.api.common.typeutils.TypeSerializer<T>This class wraps aTypeSerializerwith ttl awareness. It will return true when the wrappedTypeSerializeris instance ofTtlStateFactory.TtlSerializer. Also, it wraps the value migration process between TtlSerializer and non-ttl typeSerializer.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classTtlAwareSerializer.TtlAwareListSerializer<T>The list version ofTtlAwareSerializer.static classTtlAwareSerializer.TtlAwareMapSerializer<K,V>The map version ofTtlAwareSerializer.
-
Constructor Summary
Constructors Constructor Description TtlAwareSerializer(S typeSerializer)TtlAwareSerializer(S typeSerializer, boolean isTtlEnabled)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcopy(org.apache.flink.core.memory.DataInputView source, org.apache.flink.core.memory.DataOutputView target)Tcopy(T from)Tcopy(T from, T reuse)TcreateInstance()Tdeserialize(org.apache.flink.core.memory.DataInputView source)Tdeserialize(T reuse, org.apache.flink.core.memory.DataInputView source)org.apache.flink.api.common.typeutils.TypeSerializer<T>duplicate()booleanequals(Object o)intgetLength()SgetOriginalTypeSerializer()inthashCode()booleanisImmutableType()static booleanisSerializerTtlEnabled(org.apache.flink.api.common.typeutils.TypeSerializer<?> typeSerializer)booleanisTtlEnabled()voidmigrateValueFromPriorSerializer(TtlAwareSerializer<T,?> priorTtlAwareSerializer, org.apache.flink.util.function.SupplierWithException<T,IOException> inputSupplier, org.apache.flink.core.memory.DataOutputView target, TtlTimeProvider ttlTimeProvider)static booleanneedTtlStateMigration(org.apache.flink.api.common.typeutils.TypeSerializer<?> previousSerializer, org.apache.flink.api.common.typeutils.TypeSerializer<?> newSerializer)voidserialize(T record, org.apache.flink.core.memory.DataOutputView target)org.apache.flink.api.common.typeutils.TypeSerializerSnapshot<T>snapshotConfiguration()static TtlAwareSerializer<?,?>wrapTtlAwareSerializer(org.apache.flink.api.common.typeutils.TypeSerializer<?> typeSerializer)
-
-
-
Method Detail
-
isImmutableType
public boolean isImmutableType()
- Specified by:
isImmutableTypein classorg.apache.flink.api.common.typeutils.TypeSerializer<T>
-
duplicate
public org.apache.flink.api.common.typeutils.TypeSerializer<T> duplicate()
- Specified by:
duplicatein classorg.apache.flink.api.common.typeutils.TypeSerializer<T>
-
createInstance
public T createInstance()
- Specified by:
createInstancein classorg.apache.flink.api.common.typeutils.TypeSerializer<T>
-
copy
public T copy(T from)
- Specified by:
copyin classorg.apache.flink.api.common.typeutils.TypeSerializer<T>
-
copy
public T copy(T from, T reuse)
- Specified by:
copyin classorg.apache.flink.api.common.typeutils.TypeSerializer<T>
-
getLength
public int getLength()
- Specified by:
getLengthin classorg.apache.flink.api.common.typeutils.TypeSerializer<T>
-
serialize
public void serialize(T record, org.apache.flink.core.memory.DataOutputView target) throws IOException
- Specified by:
serializein classorg.apache.flink.api.common.typeutils.TypeSerializer<T>- Throws:
IOException
-
deserialize
public T deserialize(org.apache.flink.core.memory.DataInputView source) throws IOException
- Specified by:
deserializein classorg.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:
deserializein classorg.apache.flink.api.common.typeutils.TypeSerializer<T>- Throws:
IOException
-
equals
public boolean equals(Object o)
- Specified by:
equalsin classorg.apache.flink.api.common.typeutils.TypeSerializer<T>
-
hashCode
public int hashCode()
- Specified by:
hashCodein classorg.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:
copyin classorg.apache.flink.api.common.typeutils.TypeSerializer<T>- Throws:
IOException
-
isTtlEnabled
public boolean isTtlEnabled()
-
getOriginalTypeSerializer
public S getOriginalTypeSerializer()
-
snapshotConfiguration
public org.apache.flink.api.common.typeutils.TypeSerializerSnapshot<T> snapshotConfiguration()
- Specified by:
snapshotConfigurationin classorg.apache.flink.api.common.typeutils.TypeSerializer<T>
-
isSerializerTtlEnabled
public static boolean isSerializerTtlEnabled(org.apache.flink.api.common.typeutils.TypeSerializer<?> typeSerializer)
-
needTtlStateMigration
public static boolean needTtlStateMigration(org.apache.flink.api.common.typeutils.TypeSerializer<?> previousSerializer, org.apache.flink.api.common.typeutils.TypeSerializer<?> newSerializer)
-
wrapTtlAwareSerializer
public static TtlAwareSerializer<?,?> wrapTtlAwareSerializer(org.apache.flink.api.common.typeutils.TypeSerializer<?> typeSerializer)
-
-