Package org.apache.cassandra.streaming
Class StreamTransferTask
- java.lang.Object
-
- org.apache.cassandra.streaming.StreamTask
-
- org.apache.cassandra.streaming.StreamTransferTask
-
public class StreamTransferTask extends StreamTask
StreamTransferTask sends streams for a given table
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Map<java.lang.Integer,OutgoingStreamMessage>
streams
-
Fields inherited from class org.apache.cassandra.streaming.StreamTask
session, tableId
-
-
Constructor Summary
Constructors Constructor Description StreamTransferTask(StreamSession session, TableId tableId)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
abort()
Abort the task.void
addTransferStream(OutgoingStream stream)
void
complete(int sequenceNumber)
Received ACK for stream atsequenceNumber
.OutgoingStreamMessage
createMessageForRetry(int sequenceNumber)
java.util.Collection<OutgoingStreamMessage>
getFileMessages()
int
getTotalNumberOfFiles()
long
getTotalSize()
java.util.concurrent.ScheduledFuture<?>
scheduleTimeout(int sequenceNumber, long time, java.util.concurrent.TimeUnit unit)
Schedule timeout task to release reference for stream sent.static void
shutdownAndWait(long timeout, java.util.concurrent.TimeUnit units)
void
timeout(int sequenceNumber)
Received ACK for stream atsequenceNumber
.-
Methods inherited from class org.apache.cassandra.streaming.StreamTask
getSummary
-
-
-
-
Field Detail
-
streams
protected final java.util.Map<java.lang.Integer,OutgoingStreamMessage> streams
-
-
Constructor Detail
-
StreamTransferTask
public StreamTransferTask(StreamSession session, TableId tableId)
-
-
Method Detail
-
addTransferStream
public void addTransferStream(OutgoingStream stream)
-
complete
public void complete(int sequenceNumber)
Received ACK for stream atsequenceNumber
.- Parameters:
sequenceNumber
- sequence number of stream
-
timeout
public void timeout(int sequenceNumber)
Received ACK for stream atsequenceNumber
.- Parameters:
sequenceNumber
- sequence number of stream
-
abort
public void abort()
Description copied from class:StreamTask
Abort the task. Subclass should implement cleaning up resources.- Specified by:
abort
in classStreamTask
-
getTotalNumberOfFiles
public int getTotalNumberOfFiles()
- Specified by:
getTotalNumberOfFiles
in classStreamTask
- Returns:
- total number of files this task receives/streams.
-
getTotalSize
public long getTotalSize()
- Specified by:
getTotalSize
in classStreamTask
- Returns:
- total bytes expected to receive
-
getFileMessages
public java.util.Collection<OutgoingStreamMessage> getFileMessages()
-
createMessageForRetry
public OutgoingStreamMessage createMessageForRetry(int sequenceNumber)
-
scheduleTimeout
public java.util.concurrent.ScheduledFuture<?> scheduleTimeout(int sequenceNumber, long time, java.util.concurrent.TimeUnit unit)
Schedule timeout task to release reference for stream sent. When not receiving ACK after sending to receiver in given time, the task will release reference.- Parameters:
sequenceNumber
- sequence number of stream sent.time
- time to timeoutunit
- unit of given time- Returns:
- scheduled future for timeout task
-
shutdownAndWait
public static void shutdownAndWait(long timeout, java.util.concurrent.TimeUnit units) throws java.lang.InterruptedException, java.util.concurrent.TimeoutException
- Throws:
java.lang.InterruptedException
java.util.concurrent.TimeoutException
-
-