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 runningStreamResultFutures 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 interfaceStreamManager.StreamListenerstatic classStreamManager.StreamRateLimiter
-
Field Summary
Fields Modifier and Type Field Description static StreamManagerinstance-
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 voidaddListener(StreamManager.StreamListener listener)voidaddNotificationListener(javax.management.NotificationListener listener, javax.management.NotificationFilter filter, java.lang.Object handback)voidclearStates()StreamSessionfindSession(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.StreamRateLimitergetEntireSSTableRateLimiter(InetAddressAndPort peer)Get streaming rate limiter for entire SSTable operations.StreamResultFuturegetInitiatorStream(TimeUUID planId)javax.management.MBeanNotificationInfo[]getNotificationInfo()static StreamManager.StreamRateLimitergetRateLimiter(InetAddressAndPort peer)Gets streaming rate limiter.StreamResultFuturegetReceivingStream(TimeUUID planId)java.lang.StringgetStreamingSlowEventsLogTimeout()StreamingStategetStreamingState(TimeUUID id)java.util.Collection<StreamingState>getStreamingStates()booleangetStreamingStatsEnabled()voidputFollowerStream(StreamResultFuture future)voidputInitiatorStream(StreamResultFuture future)voidputStreamingState(StreamingState state)StreamResultFutureregisterFollower(StreamResultFuture result)voidregisterInitiator(StreamResultFuture result)voidremoveListener(StreamManager.StreamListener listener)voidremoveNotificationListener(javax.management.NotificationListener listener)voidremoveNotificationListener(javax.management.NotificationListener listener, javax.management.NotificationFilter filter, java.lang.Object handback)voidsetStreamingSlowEventsLogTimeout(java.lang.String value)Sets the timeout for the streaming slow events logvoidsetStreamingStatsEnabled(boolean streamingStatsEnabled)enable/disable collection of streaming stats while streaming is running.voidstart()voidstop()
-
-
-
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_outboundis less than or equal ot0, this returns rate limiter with the rate ofDouble.MAX_VALUEbytes per second. Rate unit is bytes per sec.- Parameters:
peer- the peer location- Returns:
StreamManager.StreamRateLimiterwith entire SSTable rate limit set based on peer location
-
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:StreamManagerMBeanReturns the current state of all ongoing streams.- Specified by:
getCurrentStreamsin interfaceStreamManagerMBean
-
getStreamingStatsEnabled
public boolean getStreamingStatsEnabled()
- Specified by:
getStreamingStatsEnabledin interfaceStreamManagerMBean- Returns:
- whether the streaming virtual table should collect stats while streaming is running
-
setStreamingStatsEnabled
public void setStreamingStatsEnabled(boolean streamingStatsEnabled)
Description copied from interface:StreamManagerMBeanenable/disable collection of streaming stats while streaming is running.- Specified by:
setStreamingStatsEnabledin interfaceStreamManagerMBean
-
getStreamingSlowEventsLogTimeout
public java.lang.String getStreamingSlowEventsLogTimeout()
- Specified by:
getStreamingSlowEventsLogTimeoutin interfaceStreamManagerMBean- Returns:
- current timeout for streaming slow events log
-
setStreamingSlowEventsLogTimeout
public void setStreamingSlowEventsLogTimeout(java.lang.String value)
Description copied from interface:StreamManagerMBeanSets the timeout for the streaming slow events log- Specified by:
setStreamingSlowEventsLogTimeoutin 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:
addNotificationListenerin interfacejavax.management.NotificationBroadcaster
-
removeNotificationListener
public void removeNotificationListener(javax.management.NotificationListener listener) throws javax.management.ListenerNotFoundException- Specified by:
removeNotificationListenerin 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:
removeNotificationListenerin interfacejavax.management.NotificationEmitter- Throws:
javax.management.ListenerNotFoundException
-
getNotificationInfo
public javax.management.MBeanNotificationInfo[] getNotificationInfo()
- Specified by:
getNotificationInfoin interfacejavax.management.NotificationBroadcaster
-
findSession
public StreamSession findSession(InetAddressAndPort peer, TimeUUID planId, int sessionIndex, boolean searchInitiatorSessions)
-
-