Class Cdc

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    public class Cdc
    extends java.lang.Object
    implements java.io.Closeable
    • Field Detail

      • asyncExecutor

        protected final org.apache.cassandra.spark.utils.AsyncExecutor asyncExecutor
      • batchStartNanos

        protected volatile long batchStartNanos
      • cdcEnabledTables

        protected volatile java.util.Set<org.apache.cassandra.spark.data.CqlTable> cdcEnabledTables
    • Constructor Detail

      • Cdc

        protected Cdc​(@NotNull
                      CdcBuilder builder)
    • Method Detail

      • jobId

        public java.lang.String jobId()
      • partitionId

        public int partitionId()
      • epoch

        public long epoch()
      • markers

        @NotNull
        public org.apache.cassandra.cdc.api.CommitLogMarkers markers()
      • start

        public void start()
      • stop

        public void stop()
      • stop

        public void stop​(boolean blocking)
                  throws java.util.concurrent.ExecutionException,
                         java.lang.InterruptedException
        Throws:
        java.util.concurrent.ExecutionException
        java.lang.InterruptedException
      • scheduleNextRun

        protected void scheduleNextRun()
      • scheduleRun

        protected void scheduleRun​(long delayMillis)
      • completeActiveFuture

        protected void completeActiveFuture​(java.util.concurrent.CompletableFuture<java.lang.Void> future)
      • runSafe

        protected void runSafe​(java.util.concurrent.CompletableFuture<java.lang.Void> future)
      • handleError

        protected boolean handleError​(java.lang.Throwable t)
        Parameters:
        t - throwable
        Returns:
        true if Cdc consumer can continue, or false if it should stop.
      • newMicroBatchIterator

        protected MicroBatchIterator newMicroBatchIterator()
                                                    throws org.apache.cassandra.spark.data.partitioner.NotEnoughReplicasException
        Throws:
        org.apache.cassandra.spark.data.partitioner.NotEnoughReplicasException
      • newMicroBatchIterator

        protected MicroBatchIterator newMicroBatchIterator​(@Nullable
                                                           org.apache.cassandra.bridge.TokenRange tokenRange,
                                                           org.apache.cassandra.cdc.state.CdcState startState)
                                                    throws org.apache.cassandra.spark.data.partitioner.NotEnoughReplicasException
        Throws:
        org.apache.cassandra.spark.data.partitioner.NotEnoughReplicasException
      • keyspaceSupplier

        protected java.util.Set<java.lang.String> keyspaceSupplier()
      • run

        protected void run()
                    throws org.apache.cassandra.spark.data.partitioner.NotEnoughReplicasException
        Throws:
        org.apache.cassandra.spark.data.partitioner.NotEnoughReplicasException
      • isFinished

        protected boolean isFinished()
      • epochsExceeded

        protected boolean epochsExceeded()
      • bridge

        protected org.apache.cassandra.bridge.CassandraBridge bridge()
      • cdcBridge

        protected org.apache.cassandra.bridge.CdcBridge cdcBridge()
      • serializeStateToBytes

        public java.nio.ByteBuffer serializeStateToBytes()
                                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • persist

        protected void persist​(org.apache.cassandra.cdc.state.CdcState cdcState,
                               org.apache.cassandra.bridge.TokenRange tokenRange)
      • scheduleMonitorSchema

        public void scheduleMonitorSchema()
      • refreshSchema

        protected void refreshSchema()
      • close

        public void close()
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable