Github user mcfongtw commented on a diff in the pull request: https://github.com/apache/flink/pull/4605#discussion_r139630504 --- Diff: flink-connectors/flink-connector-cassandra/src/main/java/org/apache/flink/streaming/connectors/cassandra/CassandraSinkBase.java --- @@ -37,29 +41,49 @@ * * @param <IN> Type of the elements emitted by this sink */ -public abstract class CassandraSinkBase<IN, V> extends RichSinkFunction<IN> { +public abstract class CassandraSinkBase<IN, V> extends RichSinkFunction<IN> implements CheckpointedFunction { protected final Logger log = LoggerFactory.getLogger(getClass()); protected transient Cluster cluster; protected transient Session session; - protected transient volatile Throwable exception; + protected transient volatile Throwable asyncError; protected transient FutureCallback<V> callback; - private final ClusterBuilder builder; + protected final ClusterBuilder builder; private final AtomicInteger updatesPending = new AtomicInteger(); + /** + * If true, the producer will wait until all outstanding action requests have been sent to C*. + */ + private boolean flushOnCheckpoint = true; --- End diff -- Should we default this setting as true then? Making it final does not allow to reset the flag after obj is constructed. Further, should this behavior be applied to all other SinkBase / Producer classes in the future?
---