Package org.apache.cassandra.streaming
Class StreamManager
- java.lang.Object
-
- org.apache.cassandra.streaming.StreamManager
-
- All Implemented Interfaces:
javax.management.NotificationBroadcaster
,javax.management.NotificationEmitter
,StreamManagerMBean
public class StreamManager extends java.lang.Object implements StreamManagerMBean
StreamManager manages currently runningStreamResultFuture
s and provides status of all operation invoked. All stream operations should be created through this class to track streaming status and progress.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
StreamManager.StreamListener
static class
StreamManager.StreamRateLimiter
-
Field Summary
Fields Modifier and Type Field Description static StreamManager
instance
-
Fields inherited from interface org.apache.cassandra.streaming.StreamManagerMBean
OBJECT_NAME
-
-
Constructor Summary
Constructors Constructor Description StreamManager()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addListener(StreamManager.StreamListener listener)
void
addNotificationListener(javax.management.NotificationListener listener, javax.management.NotificationFilter filter, java.lang.Object handback)
protected void
addStreamingStateAgain(StreamingState state)
void
clearStates()
StreamSession
findSession(InetAddressAndPort peer, TimeUUID planId, int sessionIndex, boolean searchInitiatorSessions)
java.util.Set<javax.management.openmbean.CompositeData>
getCurrentStreams()
Returns the current state of all ongoing streams.static StreamManager.StreamRateLimiter
getEntireSSTableRateLimiter(InetAddressAndPort peer)
Get streaming rate limiter for entire SSTable operations.StreamResultFuture
getInitiatorStream(TimeUUID planId)
javax.management.MBeanNotificationInfo[]
getNotificationInfo()
static StreamManager.StreamRateLimiter
getRateLimiter(InetAddressAndPort peer)
Gets streaming rate limiter.StreamResultFuture
getReceivingStream(TimeUUID planId)
java.lang.String
getStreamingSlowEventsLogTimeout()
StreamingState
getStreamingState(TimeUUID id)
java.util.Collection<StreamingState>
getStreamingStates()
boolean
getStreamingStatsEnabled()
long
getTotalRemainingOngoingBytes()
void
putFollowerStream(StreamResultFuture future)
void
putInitiatorStream(StreamResultFuture future)
void
putStreamingState(StreamingState state)
StreamResultFuture
registerFollower(StreamResultFuture result)
void
registerInitiator(StreamResultFuture result)
void
removeListener(StreamManager.StreamListener listener)
void
removeNotificationListener(javax.management.NotificationListener listener)
void
removeNotificationListener(javax.management.NotificationListener listener, javax.management.NotificationFilter filter, java.lang.Object handback)
void
setStreamingSlowEventsLogTimeout(java.lang.String value)
Sets the timeout for the streaming slow events logvoid
setStreamingStatsEnabled(boolean streamingStatsEnabled)
enable/disable collection of streaming stats while streaming is running.void
start()
void
stop()
-
-
-
Field Detail
-
instance
public static final StreamManager instance
-
-
Method Detail
-
getRateLimiter
public static StreamManager.StreamRateLimiter getRateLimiter(InetAddressAndPort peer)
Gets streaming rate limiter. When stream_throughput_outbound is 0, this returns rate limiter with the rate of Double.MAX_VALUE bytes per second. Rate unit is bytes per sec.- Returns:
- StreamRateLimiter with rate limit set based on peer location.
-
getEntireSSTableRateLimiter
public static StreamManager.StreamRateLimiter getEntireSSTableRateLimiter(InetAddressAndPort peer)
Get streaming rate limiter for entire SSTable operations. Whenentire_sstable_stream_throughput_outbound
is less than or equal ot0
, this returns rate limiter with the rate ofDouble.MAX_VALUE
bytes per second. Rate unit is bytes per sec.- Parameters:
peer
- the peer location- Returns:
StreamManager.StreamRateLimiter
with entire SSTable rate limit set based on peer location
-
addStreamingStateAgain
protected void addStreamingStateAgain(StreamingState state)
-
start
public void start()
-
stop
public void stop()
-
getStreamingStates
public java.util.Collection<StreamingState> getStreamingStates()
-
getStreamingState
public StreamingState getStreamingState(TimeUUID id)
-
putStreamingState
public void putStreamingState(StreamingState state)
-
clearStates
public void clearStates()
-
getCurrentStreams
public java.util.Set<javax.management.openmbean.CompositeData> getCurrentStreams()
Description copied from interface:StreamManagerMBean
Returns the current state of all ongoing streams.- Specified by:
getCurrentStreams
in interfaceStreamManagerMBean
-
getStreamingStatsEnabled
public boolean getStreamingStatsEnabled()
- Specified by:
getStreamingStatsEnabled
in interfaceStreamManagerMBean
- Returns:
- whether the streaming virtual table should collect stats while streaming is running
-
setStreamingStatsEnabled
public void setStreamingStatsEnabled(boolean streamingStatsEnabled)
Description copied from interface:StreamManagerMBean
enable/disable collection of streaming stats while streaming is running.- Specified by:
setStreamingStatsEnabled
in interfaceStreamManagerMBean
-
getStreamingSlowEventsLogTimeout
public java.lang.String getStreamingSlowEventsLogTimeout()
- Specified by:
getStreamingSlowEventsLogTimeout
in interfaceStreamManagerMBean
- Returns:
- current timeout for streaming slow events log
-
setStreamingSlowEventsLogTimeout
public void setStreamingSlowEventsLogTimeout(java.lang.String value)
Description copied from interface:StreamManagerMBean
Sets the timeout for the streaming slow events log- Specified by:
setStreamingSlowEventsLogTimeout
in interfaceStreamManagerMBean
-
registerInitiator
public void registerInitiator(StreamResultFuture result)
-
registerFollower
public StreamResultFuture registerFollower(StreamResultFuture result)
-
putInitiatorStream
public void putInitiatorStream(StreamResultFuture future)
-
putFollowerStream
public void putFollowerStream(StreamResultFuture future)
-
addListener
public void addListener(StreamManager.StreamListener listener)
-
removeListener
public void removeListener(StreamManager.StreamListener listener)
-
getReceivingStream
public StreamResultFuture getReceivingStream(TimeUUID planId)
-
getInitiatorStream
public StreamResultFuture getInitiatorStream(TimeUUID planId)
-
addNotificationListener
public void addNotificationListener(javax.management.NotificationListener listener, javax.management.NotificationFilter filter, java.lang.Object handback)
- Specified by:
addNotificationListener
in interfacejavax.management.NotificationBroadcaster
-
removeNotificationListener
public void removeNotificationListener(javax.management.NotificationListener listener) throws javax.management.ListenerNotFoundException
- Specified by:
removeNotificationListener
in interfacejavax.management.NotificationBroadcaster
- Throws:
javax.management.ListenerNotFoundException
-
removeNotificationListener
public void removeNotificationListener(javax.management.NotificationListener listener, javax.management.NotificationFilter filter, java.lang.Object handback) throws javax.management.ListenerNotFoundException
- Specified by:
removeNotificationListener
in interfacejavax.management.NotificationEmitter
- Throws:
javax.management.ListenerNotFoundException
-
getNotificationInfo
public javax.management.MBeanNotificationInfo[] getNotificationInfo()
- Specified by:
getNotificationInfo
in interfacejavax.management.NotificationBroadcaster
-
findSession
public StreamSession findSession(InetAddressAndPort peer, TimeUUID planId, int sessionIndex, boolean searchInitiatorSessions)
-
getTotalRemainingOngoingBytes
public long getTotalRemainingOngoingBytes()
-
-