Class StreamSession<T extends TransportContext>
- java.lang.Object
-
- org.apache.cassandra.spark.bulkwriter.StreamSession<T>
-
- Direct Known Subclasses:
CloudStorageStreamSession,DirectStreamSession
public abstract class StreamSession<T extends TransportContext> extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.ArrayList<StreamError>errorsprotected java.util.concurrent.ExecutorServiceexecutorServiceprotected ReplicaAwareFailureHandler<RingInstance>failureHandlerprotected java.util.List<RingInstance>replicasprotected java.lang.StringsessionIDprotected SortedSSTableWritersstableWriterprotected com.google.common.collect.Range<java.math.BigInteger>tokenRangeprotected TokenRangeMapping<RingInstance>tokenRangeMappingprotected TtransportContextprotected BulkWriterContextwriterContext
-
Constructor Summary
Constructors Modifier Constructor Description protectedStreamSession(BulkWriterContext writerContext, SortedSSTableWriter sstableWriter, T transportContext, java.lang.String sessionID, com.google.common.collect.Range<java.math.BigInteger> tokenRange, ReplicaAwareFailureHandler<RingInstance> failureHandler, java.util.concurrent.ExecutorService executorService)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidaddRow(java.math.BigInteger token, java.util.Map<java.lang.String,java.lang.Object> boundValues)protected voidcleanupSSTables(org.slf4j.Logger logger)protected abstract StreamResultdoFinalizeStream()Finalize the stream with the produced sstables and return the stream result.java.util.concurrent.Future<StreamResult>finalizeStreamAsync()com.google.common.collect.Range<java.math.BigInteger>getTokenRange()protected booleanisFileStreamed(java.nio.file.Path file)protected booleanisStreamFinalized()protected abstract voidonSSTablesProduced(java.util.Set<org.apache.cassandra.bridge.SSTableDescriptor> sstables)Get notified on sstables produced.protected voidrecordStreamedFile(java.nio.file.Path file)longrowCount()protected abstract voidsendRemainingSSTables()Send the SSTable(s) written by SSTableWriter The code runs on a separate threadprotected booleansetLastStreamFailure(java.lang.Exception streamFailure)voidthrowIfLastStreamFailed()Throw exception when the last streaming task has failed
-
-
-
Field Detail
-
writerContext
protected final BulkWriterContext writerContext
-
transportContext
protected final T extends TransportContext transportContext
-
sessionID
protected final java.lang.String sessionID
-
tokenRange
protected final com.google.common.collect.Range<java.math.BigInteger> tokenRange
-
replicas
protected final java.util.List<RingInstance> replicas
-
errors
protected final java.util.ArrayList<StreamError> errors
-
failureHandler
protected final ReplicaAwareFailureHandler<RingInstance> failureHandler
-
tokenRangeMapping
protected final TokenRangeMapping<RingInstance> tokenRangeMapping
-
sstableWriter
protected final SortedSSTableWriter sstableWriter
-
executorService
protected final java.util.concurrent.ExecutorService executorService
-
-
Constructor Detail
-
StreamSession
protected StreamSession(BulkWriterContext writerContext, SortedSSTableWriter sstableWriter, T transportContext, java.lang.String sessionID, com.google.common.collect.Range<java.math.BigInteger> tokenRange, ReplicaAwareFailureHandler<RingInstance> failureHandler, java.util.concurrent.ExecutorService executorService)
-
-
Method Detail
-
onSSTablesProduced
protected abstract void onSSTablesProduced(java.util.Set<org.apache.cassandra.bridge.SSTableDescriptor> sstables)
Get notified on sstables produced. When the method is invoked, the input parameter 'sstables' is guaranteed to be non-empty.- Parameters:
sstables- produces SSTables
-
doFinalizeStream
protected abstract StreamResult doFinalizeStream()
Finalize the stream with the produced sstables and return the stream result.- Returns:
- stream result
-
sendRemainingSSTables
protected abstract void sendRemainingSSTables()
Send the SSTable(s) written by SSTableWriter The code runs on a separate thread
-
getTokenRange
public com.google.common.collect.Range<java.math.BigInteger> getTokenRange()
-
throwIfLastStreamFailed
public void throwIfLastStreamFailed() throws java.io.IOExceptionThrow exception when the last streaming task has failed- Throws:
java.io.IOException- stream failure
-
addRow
public void addRow(java.math.BigInteger token, java.util.Map<java.lang.String,java.lang.Object> boundValues) throws java.io.IOException- Throws:
java.io.IOException
-
rowCount
public long rowCount()
-
finalizeStreamAsync
public java.util.concurrent.Future<StreamResult> finalizeStreamAsync() throws java.io.IOException
- Throws:
java.io.IOException
-
isStreamFinalized
protected boolean isStreamFinalized()
-
setLastStreamFailure
protected boolean setLastStreamFailure(java.lang.Exception streamFailure)
-
recordStreamedFile
protected void recordStreamedFile(java.nio.file.Path file)
-
isFileStreamed
protected boolean isFileStreamed(java.nio.file.Path file)
-
cleanupSSTables
protected void cleanupSSTables(org.slf4j.Logger logger)
-
-