Package org.apache.cassandra.cdc
Class Cdc
- java.lang.Object
-
- org.apache.cassandra.cdc.Cdc
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
public class Cdc extends java.lang.Object implements java.io.Closeable
-
-
Field Summary
Fields Modifier and Type Field Description protected org.apache.cassandra.spark.utils.AsyncExecutorasyncExecutorprotected longbatchStartNanosprotected java.util.Set<org.apache.cassandra.spark.data.CqlTable>cdcEnabledTablesprotected CommitLogProvidercommitLogProviderprotected SchemaSupplierschemaSupplier
-
Constructor Summary
Constructors Modifier Constructor Description protectedCdc(CdcBuilder builder)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected org.apache.cassandra.bridge.CassandraBridgebridge()static CdcBuilderbuilder(java.lang.String jobId, int partitionId, EventConsumer eventConsumer, SchemaSupplier schemaSupplier)protected org.apache.cassandra.bridge.CdcBridgecdcBridge()voidclose()protected voidcompleteActiveFuture(java.util.concurrent.CompletableFuture<java.lang.Void> future)longepoch()protected booleanepochsExceeded()protected booleanhandleError(java.lang.Throwable t)protected booleanisFinished()java.lang.StringjobId()protected java.util.Set<java.lang.String>keyspaceSupplier()org.apache.cassandra.cdc.api.CommitLogMarkersmarkers()protected MicroBatchIteratornewMicroBatchIterator()protected MicroBatchIteratornewMicroBatchIterator(org.apache.cassandra.bridge.TokenRange tokenRange, org.apache.cassandra.cdc.state.CdcState startState)intpartitionId()protected voidpersist(org.apache.cassandra.cdc.state.CdcState cdcState, org.apache.cassandra.bridge.TokenRange tokenRange)protected voidrefreshSchema()protected voidrun()protected voidrunSafe(java.util.concurrent.CompletableFuture<java.lang.Void> future)voidscheduleMonitorSchema()protected voidscheduleNextRun()protected voidscheduleRun(long delayMillis)java.nio.ByteBufferserializeStateToBytes()voidstart()voidstop()voidstop(boolean blocking)
-
-
-
Field Detail
-
schemaSupplier
protected final SchemaSupplier schemaSupplier
-
asyncExecutor
protected final org.apache.cassandra.spark.utils.AsyncExecutor asyncExecutor
-
commitLogProvider
protected final CommitLogProvider commitLogProvider
-
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
-
builder
public static CdcBuilder builder(@NotNull java.lang.String jobId, int partitionId, EventConsumer eventConsumer, SchemaSupplier schemaSupplier)
-
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.ExecutionExceptionjava.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:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable
-
-