Package io.pravega.connectors.flink.sink
Class PravegaTransactionalSink<T>
- java.lang.Object
-
- io.pravega.connectors.flink.sink.PravegaSink<T>
-
- io.pravega.connectors.flink.sink.PravegaTransactionalSink<T>
-
- Type Parameters:
T
- The type of the event to be written.
- All Implemented Interfaces:
java.io.Serializable
,org.apache.flink.api.connector.sink2.Sink<T>
,org.apache.flink.api.connector.sink2.TwoPhaseCommittingSink<T,PravegaTransactionState>
@Experimental public class PravegaTransactionalSink<T> extends PravegaSink<T> implements org.apache.flink.api.connector.sink2.TwoPhaseCommittingSink<T,PravegaTransactionState>
A Pravega sink forPravegaWriterMode.EXACTLY_ONCE
writer mode.Use
PravegaSinkBuilder
to construct aPravegaTransactionalSink
.PravegaTransactionalSink
has two main components,PravegaTransactionalWriter
andPravegaCommitter
.The transactional writer will create a transaction on initialization and after each checkpoint. For every event, it will call
Transaction.writeEvent(Type)
.Transaction.flush()
will be called before next checkpoint to make sure all events are acknowledged by Pravega. Note it will not commit transactions and letPravegaCommitter
to do this.The committer will use the transactions provided by the transactional writer and commit them. If there is an error during commit, it will log the error and throw the failed transaction away.
- See Also:
- Serialized Form
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.apache.flink.api.connector.sink2.Committer<PravegaTransactionState>
createCommitter()
org.apache.flink.api.connector.sink2.TwoPhaseCommittingSink.PrecommittingSinkWriter<T,PravegaTransactionState>
createWriter(org.apache.flink.api.connector.sink2.Sink.InitContext context)
org.apache.flink.core.io.SimpleVersionedSerializer<PravegaTransactionState>
getCommittableSerializer()
-
Methods inherited from class io.pravega.connectors.flink.sink.PravegaSink
builder
-
-
-
-
Method Detail
-
createWriter
public org.apache.flink.api.connector.sink2.TwoPhaseCommittingSink.PrecommittingSinkWriter<T,PravegaTransactionState> createWriter(org.apache.flink.api.connector.sink2.Sink.InitContext context) throws java.io.IOException
- Specified by:
createWriter
in interfaceorg.apache.flink.api.connector.sink2.Sink<T>
- Specified by:
createWriter
in interfaceorg.apache.flink.api.connector.sink2.TwoPhaseCommittingSink<T,PravegaTransactionState>
- Throws:
java.io.IOException
-
createCommitter
public org.apache.flink.api.connector.sink2.Committer<PravegaTransactionState> createCommitter() throws java.io.IOException
- Specified by:
createCommitter
in interfaceorg.apache.flink.api.connector.sink2.TwoPhaseCommittingSink<T,PravegaTransactionState>
- Throws:
java.io.IOException
-
getCommittableSerializer
public org.apache.flink.core.io.SimpleVersionedSerializer<PravegaTransactionState> getCommittableSerializer()
- Specified by:
getCommittableSerializer
in interfaceorg.apache.flink.api.connector.sink2.TwoPhaseCommittingSink<T,PravegaTransactionState>
-
-