
com.groupbyinc.flux.common.jboss.netty.handler.traffic.GlobalChannelTrafficShapingHandler.class Maven / Gradle / Ivy
???? 1V Ycom/groupbyinc/flux/common/jboss/netty/handler/traffic/GlobalChannelTrafficShapingHandler Tcom/groupbyinc/flux/common/jboss/netty/handler/traffic/AbstractTrafficShapingHandler 'GlobalChannelTrafficShapingHandler.java HLcom/groupbyinc/flux/common/jboss/netty/channel/ChannelHandler$Sharable; `com/groupbyinc/flux/common/jboss/netty/handler/traffic/GlobalChannelTrafficShapingHandler$ToSend ToSend dcom/groupbyinc/flux/common/jboss/netty/handler/traffic/GlobalChannelTrafficShapingHandler$PerChannel
PerChannel [com/groupbyinc/flux/common/jboss/netty/handler/traffic/GlobalChannelTrafficShapingHandler$2
[com/groupbyinc/flux/common/jboss/netty/handler/traffic/GlobalChannelTrafficShapingHandler$1 dcom/groupbyinc/flux/common/jboss/netty/handler/traffic/AbstractTrafficShapingHandler$ReadWriteStatus ReadWriteStatus Fcom/groupbyinc/flux/common/jboss/netty/channel/ChannelHandler$Sharable =com/groupbyinc/flux/common/jboss/netty/channel/ChannelHandler Sharable hcom/groupbyinc/flux/common/jboss/netty/handler/traffic/AbstractTrafficShapingHandler$ReopenReadTimerTask ReopenReadTimerTask logger ?Lcom/groupbyinc/flux/common/jboss/netty/logging/InternalLogger;
channelQueues $Ljava/util/concurrent/ConcurrentMap; ?Ljava/util/concurrent/ConcurrentMap;
queuesSize (Ljava/util/concurrent/atomic/AtomicLong; cumulativeWrittenBytes cumulativeReadBytes maxGlobalWriteSize J writeChannelLimit readChannelLimit DEFAULT_DEVIATION F=???
MAX_DEVIATION>??? DEFAULT_SLOWDOWN DEFAULT_ACCELERATION???? maxDeviation accelerationFactor slowDownFactor readDeviationActive Z writeDeviationActive createGlobalTrafficCounter 6(Lcom/groupbyinc/flux/common/jboss/netty/util/Timer;)V setMaxDeviation (FFF)V 9 :
; "java/lang/IllegalArgumentException = Timer must not be null ? (Ljava/lang/String;)V A B
> C Rcom/groupbyinc/flux/common/jboss/netty/handler/traffic/GlobalChannelTrafficCounter E GlobalChannelTC G
checkInterval I & J ?(Lcom/groupbyinc/flux/common/jboss/netty/handler/traffic/GlobalChannelTrafficShapingHandler;Lcom/groupbyinc/flux/common/jboss/netty/util/Timer;Ljava/lang/String;J)V A L
F M setTrafficCounter J(Lcom/groupbyinc/flux/common/jboss/netty/handler/traffic/TrafficCounter;)V O P
Q Ecom/groupbyinc/flux/common/jboss/netty/handler/traffic/TrafficCounter S start ()V U V
T W this [Lcom/groupbyinc/flux/common/jboss/netty/handler/traffic/GlobalChannelTrafficShapingHandler; timer 3Lcom/groupbyinc/flux/common/jboss/netty/util/Timer; tc GLcom/groupbyinc/flux/common/jboss/netty/handler/traffic/TrafficCounter; userDefinedWritabilityIndex ()I <(Lcom/groupbyinc/flux/common/jboss/netty/util/Timer;JJJJJJ)V :(Lcom/groupbyinc/flux/common/jboss/netty/util/Timer;JJJJ)V A b
c Fcom/groupbyinc/flux/common/jboss/netty/util/internal/ConcurrentHashMap e A V
f g i &java/util/concurrent/atomic/AtomicLong k
l g ! " n # " p $ " r % & v 7 8
x ' & z ( & | writeGlobalLimit readGlobalLimit maxTime ;(Lcom/groupbyinc/flux/common/jboss/netty/util/Timer;JJJJJ)V 9(Lcom/groupbyinc/flux/common/jboss/netty/util/Timer;JJJ)V A ?
? 8(Lcom/groupbyinc/flux/common/jboss/netty/util/Timer;JJ)V A ?
? 7(Lcom/groupbyinc/flux/common/jboss/netty/util/Timer;J)V A ?
? A 8
? }(Lcom/groupbyinc/flux/common/jboss/netty/util/ObjectSizeEstimator;Lcom/groupbyinc/flux/common/jboss/netty/util/Timer;JJJJJJ)V {(Lcom/groupbyinc/flux/common/jboss/netty/util/ObjectSizeEstimator;Lcom/groupbyinc/flux/common/jboss/netty/util/Timer;JJJJ)V A ?
? objectSizeEstimator ALcom/groupbyinc/flux/common/jboss/netty/util/ObjectSizeEstimator;
writeLimit readLimit |(Lcom/groupbyinc/flux/common/jboss/netty/util/ObjectSizeEstimator;Lcom/groupbyinc/flux/common/jboss/netty/util/Timer;JJJJJ)V z(Lcom/groupbyinc/flux/common/jboss/netty/util/ObjectSizeEstimator;Lcom/groupbyinc/flux/common/jboss/netty/util/Timer;JJJ)V A ?
? y(Lcom/groupbyinc/flux/common/jboss/netty/util/ObjectSizeEstimator;Lcom/groupbyinc/flux/common/jboss/netty/util/Timer;JJ)V A ?
? x(Lcom/groupbyinc/flux/common/jboss/netty/util/ObjectSizeEstimator;Lcom/groupbyinc/flux/common/jboss/netty/util/Timer;J)V A ?
? w(Lcom/groupbyinc/flux/common/jboss/netty/util/ObjectSizeEstimator;Lcom/groupbyinc/flux/common/jboss/netty/util/Timer;)V A ?
? ()F 1 * ? 2 * ? 3 * ? maxDeviation must be <= 0.4 ? slowDownFactor must be >= 0 ? accelerationFactor must be <= 0 ? computeDeviationCumulativeBytes??????? "java/util/concurrent/ConcurrentMap ? values ()Ljava/util/Collection; ? ? ? ? java/util/Collection ? iterator ()Ljava/util/Iterator; ? ? ? ? java/util/Iterator ? hasNext ()Z ? ? ? ? next ()Ljava/lang/Object; ? ? ? ? channelTrafficCounter ? ^ ? getCumulativeWrittenBytes ()J ? ?
T ? getCumulativeReadBytes ? ?
T ? size ? ` ? ? 4 5 ? 6 5 ? set (J)V ? ?
l ? value
perChannel fLcom/groupbyinc/flux/common/jboss/netty/handler/traffic/GlobalChannelTrafficShapingHandler$PerChannel; i$ Ljava/util/Iterator; maxWrittenBytes maxReadBytes minWrittenBytes minReadBytes multiple doAccounting ? V
? ? P
? counter computeBalancedWait (FFJ)J
maxLocal maxGlobal wait ratio getMaxGlobalWriteSize setMaxGlobalWriteSize get ? ?
l ? configureChannel (JJ)V milliSecondFromNano ? ?
T ? resetAccounting ?
T
newWriteLimit newReadLimit now getWriteChannelLimit setWriteChannelLimit getReadChannelLimit setReadChannelLimit release trafficCounter ^
stop V
T getOrSetPerChannel ?(Lcom/groupbyinc/flux/common/jboss/netty/channel/ChannelHandlerContext;)Lcom/groupbyinc/flux/common/jboss/netty/handler/traffic/GlobalChannelTrafficShapingHandler$PerChannel; Dcom/groupbyinc/flux/common/jboss/netty/channel/ChannelHandlerContext
getChannel :()Lcom/groupbyinc/flux/common/jboss/netty/channel/Channel; java/lang/Object hashCode `
java/lang/Integer valueOf (I)Ljava/lang/Integer;!"
# &(Ljava/lang/Object;)Ljava/lang/Object; ?% ?&
g java/util/LinkedList)
* g
messagesQueue Ljava/util/List;,- . java/lang/StringBuilder0
1 g ChannelTC3 append -(Ljava/lang/String;)Ljava/lang/StringBuilder;56
17 (I)Ljava/lang/StringBuilder;59
1: toString ()Ljava/lang/String;<=
1> ?(Lcom/groupbyinc/flux/common/jboss/netty/handler/traffic/AbstractTrafficShapingHandler;Lcom/groupbyinc/flux/common/jboss/netty/util/Timer;Ljava/lang/String;J)V A@
TA queueSizeC & D lastReadTimestampF & G lastWriteTimestampI & J put 8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;LM ?N ctx FLcom/groupbyinc/flux/common/jboss/netty/channel/ChannelHandlerContext; channel 8Lcom/groupbyinc/flux/common/jboss/netty/channel/Channel; key Ljava/lang/Integer; channelConnected ?(Lcom/groupbyinc/flux/common/jboss/netty/channel/ChannelHandlerContext;Lcom/groupbyinc/flux/common/jboss/netty/channel/ChannelStateEvent;)V java/lang/ExceptionX
Z resetCumulativeTime\ V
T]VW
_ e BLcom/groupbyinc/flux/common/jboss/netty/channel/ChannelStateEvent;
channelClosed removed% ?e addAndGet (J)Jgh
li java/util/Listk clearm Vln releaseWriteSuspended I(Lcom/groupbyinc/flux/common/jboss/netty/channel/ChannelHandlerContext;)Vpq
r releaseReadSuspendedtq
ucW
w messageReceived ?(Lcom/groupbyinc/flux/common/jboss/netty/channel/ChannelHandlerContext;Lcom/groupbyinc/flux/common/jboss/netty/channel/MessageEvent;)V checkAttachment ?(Lcom/groupbyinc/flux/common/jboss/netty/channel/ChannelHandlerContext;)Lcom/groupbyinc/flux/common/jboss/netty/handler/traffic/AbstractTrafficShapingHandler$ReadWriteStatus;{|
} ;com/groupbyinc/flux/common/jboss/netty/channel/MessageEvent
getMessage? ???
calculateSize (Ljava/lang/Object;)J??
? getReadLimit? ?
? ? & ? readTimeToWait (JJJJ)J??
T? ? ?
? checkWaitReadTime K(Lcom/groupbyinc/flux/common/jboss/netty/channel/ChannelHandlerContext;JJ)J??
? +Ljava/util/concurrent/atomic/AtomicBoolean;? ? )java/util/concurrent/atomic/AtomicBoolean? ? ?
?? 6com/groupbyinc/flux/common/jboss/netty/channel/Channel? isConnected? ??? ? =com/groupbyinc/flux/common/jboss/netty/logging/InternalLogger? isDebugEnabled? ??? Read suspend: ? (J)Ljava/lang/StringBuilder;5?
1? (C)Ljava/lang/StringBuilder;5?
1?
isReadable? ??? (Z)Ljava/lang/StringBuilder;5?
1? readSuspend? 5 ? debug? B?? [ \ ? java/lang/Thread? sleep? ?
?? setReadable A(Z)Lcom/groupbyinc/flux/common/jboss/netty/channel/ChannelFuture;???? Suspend final status => ? reopenReadTimerTask 7Lcom/groupbyinc/flux/common/jboss/netty/util/TimerTask;?? ? ?(Lcom/groupbyinc/flux/common/jboss/netty/handler/traffic/AbstractTrafficShapingHandler;Lcom/groupbyinc/flux/common/jboss/netty/channel/ChannelHandlerContext;)V A?
? java/util/concurrent/TimeUnit? MILLISECONDS Ljava/util/concurrent/TimeUnit;?? ?? 1com/groupbyinc/flux/common/jboss/netty/util/Timer?
newTimeout ?(Lcom/groupbyinc/flux/common/jboss/netty/util/TimerTask;JLjava/util/concurrent/TimeUnit;)Lcom/groupbyinc/flux/common/jboss/netty/util/Timeout;???? timeout 5Lcom/groupbyinc/flux/common/jboss/netty/util/Timeout;?? ? informReadOperation J(Lcom/groupbyinc/flux/common/jboss/netty/channel/ChannelHandlerContext;J)V??
? sendUpstream @(Lcom/groupbyinc/flux/common/jboss/netty/channel/ChannelEvent;)V??? maxLocalRead
maxGlobalRead
waitGlobal rws fLcom/groupbyinc/flux/common/jboss/netty/handler/traffic/AbstractTrafficShapingHandler$ReadWriteStatus; evt =Lcom/groupbyinc/flux/common/jboss/netty/channel/MessageEvent; maximumCumulativeWrittenBytes maximumCumulativeReadBytes channelTrafficCounters ^(Lcom/groupbyinc/flux/common/jboss/netty/handler/traffic/GlobalChannelTrafficShapingHandler;)V A?
? writeRequested
getWriteLimit? ?
? writeTimeToWait??
T? submitWrite ?(Lcom/groupbyinc/flux/common/jboss/netty/channel/ChannelHandlerContext;Lcom/groupbyinc/flux/common/jboss/netty/channel/MessageEvent;JJJ)V??
maxLocalWrite maxGlobalWrite isEmpty ?l bytesRealWriteFlowControl ?
T sendDownstream
? ?(JLcom/groupbyinc/flux/common/jboss/netty/channel/MessageEvent;JLcom/groupbyinc/flux/common/jboss/netty/handler/traffic/GlobalChannelTrafficShapingHandler$1;)V A
add (Ljava/lang/Object;)Zl checkWriteSuspend K(Lcom/groupbyinc/flux/common/jboss/netty/channel/ChannelHandlerContext;JJ)V
setWritable J(Lcom/groupbyinc/flux/common/jboss/netty/channel/ChannelHandlerContext;Z)V
relativeTimeAction & (Lcom/groupbyinc/flux/common/jboss/netty/handler/traffic/GlobalChannelTrafficShapingHandler;Lcom/groupbyinc/flux/common/jboss/netty/channel/ChannelHandlerContext;Lcom/groupbyinc/flux/common/jboss/netty/handler/traffic/GlobalChannelTrafficShapingHandler$PerChannel;J)V A
writedelay newToSend bLcom/groupbyinc/flux/common/jboss/netty/handler/traffic/GlobalChannelTrafficShapingHandler$ToSend; delay globalSizeExceeded futureNow forSchedule sendAllValid ?(Lcom/groupbyinc/flux/common/jboss/netty/channel/ChannelHandlerContext;Lcom/groupbyinc/flux/common/jboss/netty/handler/traffic/GlobalChannelTrafficShapingHandler$PerChannel;J)V (I)Ljava/lang/Object;d+l, ? & . toSend0? 1 (ILjava/lang/Object;)V3l4 (I)V A6
17
> Write Channel Limit: : Read Channel Limit: <
access$100)*
? x0 x1 x2 x3 Dcom/groupbyinc/flux/common/jboss/netty/logging/InternalLoggerFactoryF getInstance R(Ljava/lang/Class;)Lcom/groupbyinc/flux/common/jboss/netty/logging/InternalLogger;HI
GJ Signature
ConstantValue Code LocalVariableTable LineNumberTable
Exceptions a()Ljava/util/Collection;
SourceFile InnerClasses RuntimeVisibleAnnotations ! L ! " # " $ " % &