
com.groupbyinc.flux.common.netty.handler.traffic.GlobalChannelTrafficShapingHandler.class Maven / Gradle / Ivy
???? 2W Scom/groupbyinc/flux/common/netty/handler/traffic/GlobalChannelTrafficShapingHandler Ncom/groupbyinc/flux/common/netty/handler/traffic/AbstractTrafficShapingHandler 'GlobalChannelTrafficShapingHandler.java BLcom/groupbyinc/flux/common/netty/channel/ChannelHandler$Sharable; Zcom/groupbyinc/flux/common/netty/handler/traffic/GlobalChannelTrafficShapingHandler$ToSend ToSend ^com/groupbyinc/flux/common/netty/handler/traffic/GlobalChannelTrafficShapingHandler$PerChannel
PerChannel Ucom/groupbyinc/flux/common/netty/handler/traffic/GlobalChannelTrafficShapingHandler$2
Ucom/groupbyinc/flux/common/netty/handler/traffic/GlobalChannelTrafficShapingHandler$1 @com/groupbyinc/flux/common/netty/channel/ChannelHandler$Sharable 7com/groupbyinc/flux/common/netty/channel/ChannelHandler Sharable bcom/groupbyinc/flux/common/netty/handler/traffic/AbstractTrafficShapingHandler$ReopenReadTimerTask ReopenReadTimerTask logger GLcom/groupbyinc/flux/common/netty/util/internal/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 2(Ljava/util/concurrent/ScheduledExecutorService;)V setMaxDeviation (FFF)V 6 7
8 "java/lang/IllegalArgumentException : Executor must not be null < (Ljava/lang/String;)V > ?
; @ Lcom/groupbyinc/flux/common/netty/handler/traffic/GlobalChannelTrafficCounter B GlobalChannelTC D
checkInterval F # G ?(Lcom/groupbyinc/flux/common/netty/handler/traffic/GlobalChannelTrafficShapingHandler;Ljava/util/concurrent/ScheduledExecutorService;Ljava/lang/String;J)V > I
C J setTrafficCounter D(Lcom/groupbyinc/flux/common/netty/handler/traffic/TrafficCounter;)V L M
N ?com/groupbyinc/flux/common/netty/handler/traffic/TrafficCounter P start ()V R S
Q T this ULcom/groupbyinc/flux/common/netty/handler/traffic/GlobalChannelTrafficShapingHandler; executor /Ljava/util/concurrent/ScheduledExecutorService; tc ALcom/groupbyinc/flux/common/netty/handler/traffic/TrafficCounter; userDefinedWritabilityIndex ()I 8(Ljava/util/concurrent/ScheduledExecutorService;JJJJJJ)V (JJJJ)V > _
` @com/groupbyinc/flux/common/netty/util/internal/PlatformDependent b newConcurrentHashMap &()Ljava/util/concurrent/ConcurrentMap; d e
c f h &java/util/concurrent/atomic/AtomicLong j > S
k l n p ! r " # v 4 5
x $ # z % # | writeGlobalLimit readGlobalLimit maxTime 7(Ljava/util/concurrent/ScheduledExecutorService;JJJJJ)V (JJJ)V > ?
? 6(Ljava/util/concurrent/ScheduledExecutorService;JJJJ)V (JJ)V > ?
? 3(Ljava/util/concurrent/ScheduledExecutorService;J)V (J)V > ?
?
l ()F . ' ? / ' ? 0 ' ? 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 ? [ ? ()J ?
Q ? ! ?
Q ? size ? ] ? ? 1 2 ? 3 2 ? set ? ?
k ? value
perChannel `Lcom/groupbyinc/flux/common/netty/handler/traffic/GlobalChannelTrafficShapingHandler$PerChannel; maxWrittenBytes maxReadBytes minWrittenBytes minReadBytes multiple doAccounting ? S
? ? M
? counter computeBalancedWait (FFJ)J
maxLocal maxGlobal wait ratio getMaxGlobalWriteSize setMaxGlobalWriteSize #maxGlobalWriteSize must be positive ? get ? ?
k ? configureChannel milliSecondFromNano ? ?
Q ? resetAccounting ? ?
Q ?
newWriteLimit newReadLimit now getWriteChannelLimit setWriteChannelLimit
writeLimit getReadChannelLimit setReadChannelLimit readLimit release trafficCounter ? [ ? stop ? S
Q ? getOrSetPerChannel ?(Lcom/groupbyinc/flux/common/netty/channel/ChannelHandlerContext;)Lcom/groupbyinc/flux/common/netty/handler/traffic/GlobalChannelTrafficShapingHandler$PerChannel; >com/groupbyinc/flux/common/netty/channel/ChannelHandlerContext ? channel 4()Lcom/groupbyinc/flux/common/netty/channel/Channel; ? java/lang/Object hashCode ]
java/lang/Integer valueOf (I)Ljava/lang/Integer;
&(Ljava/lang/Object;)Ljava/lang/Object; ? ?
l java/util/ArrayDeque
l
messagesQueue Ljava/util/ArrayDeque; java/lang/StringBuilder
l ChannelTC append -(Ljava/lang/String;)Ljava/lang/StringBuilder;
! (I)Ljava/lang/StringBuilder;#
$ toString ()Ljava/lang/String;&'
( ?(Lcom/groupbyinc/flux/common/netty/handler/traffic/AbstractTrafficShapingHandler;Ljava/util/concurrent/ScheduledExecutorService;Ljava/lang/String;J)V >*
Q+ queueSize- # . lastReadTimestamp0 # 1 lastWriteTimestamp3 # 4 put 8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;67 ?8 0com/groupbyinc/flux/common/netty/channel/Channel: ctx @Lcom/groupbyinc/flux/common/netty/channel/ChannelHandlerContext; 2Lcom/groupbyinc/flux/common/netty/channel/Channel; key Ljava/lang/Integer; handlerAdded C(Lcom/groupbyinc/flux/common/netty/channel/ChannelHandlerContext;)V java/lang/ExceptionC ? ?
E resetCumulativeTimeG S
QHAB
J handlerRemoved removeM ?N isActiveP ?;Q
? toSend Ljava/lang/Object;TU V
calculateSize (Ljava/lang/Object;)JXY
Z bytesRealWriteFlowControl\ ?
Q] addAndGet (J)J_`
ka promise 9Lcom/groupbyinc/flux/common/netty/channel/ChannelPromise;cd e write ?(Ljava/lang/Object;Lcom/groupbyinc/flux/common/netty/channel/ChannelPromise;)Lcom/groupbyinc/flux/common/netty/channel/ChannelFuture;gh ?i /com/groupbyinc/flux/common/netty/buffer/ByteBufk ? ?
lm clearo S
p java/lang/Throwabler releaseWriteSuspendedtB
u releaseReadSuspendedwB
xLB
z \Lcom/groupbyinc/flux/common/netty/handler/traffic/GlobalChannelTrafficShapingHandler$ToSend; channelRead U(Lcom/groupbyinc/flux/common/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V getReadLimit ?
? ? # ? readTimeToWait (JJJJ)J??
Q? ? ?
? checkWaitReadTime E(Lcom/groupbyinc/flux/common/netty/channel/ChannelHandlerContext;JJ)J??
? config :()Lcom/groupbyinc/flux/common/netty/channel/ChannelConfig;??;? ? Ecom/groupbyinc/flux/common/netty/util/internal/logging/InternalLogger? isDebugEnabled? ??? Read Suspend: ? (J)Ljava/lang/StringBuilder;?
? (C)Ljava/lang/StringBuilder;?
? 6com/groupbyinc/flux/common/netty/channel/ChannelConfig?
isAutoRead? ??? (Z)Ljava/lang/StringBuilder;?
? isHandlerActive C(Lcom/groupbyinc/flux/common/netty/channel/ChannelHandlerContext;)Z??
? debug? ??? setAutoRead ;(Z)Lcom/groupbyinc/flux/common/netty/channel/ChannelConfig;???? READ_SUSPENDED 4Lcom/groupbyinc/flux/common/netty/util/AttributeKey;?? ? attr g(Lcom/groupbyinc/flux/common/netty/util/AttributeKey;)Lcom/groupbyinc/flux/common/netty/util/Attribute;?? ?? java/lang/Boolean? (Z)Ljava/lang/Boolean;?
?? /com/groupbyinc/flux/common/netty/util/Attribute? (Ljava/lang/Object;)V ???? REOPEN_TASK?? ? ? ??? java/lang/Runnable? >B
? B()Lcom/groupbyinc/flux/common/netty/util/concurrent/EventExecutor; X? ?? java/util/concurrent/TimeUnit? MILLISECONDS Ljava/util/concurrent/TimeUnit;?? ?? >com/groupbyinc/flux/common/netty/util/concurrent/EventExecutor? schedule x(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lcom/groupbyinc/flux/common/netty/util/concurrent/ScheduledFuture;???? Suspend final status => ? will reopened at: ? informReadOperation D(Lcom/groupbyinc/flux/common/netty/channel/ChannelHandlerContext;J)V??
? fireChannelRead T(Ljava/lang/Object;)Lcom/groupbyinc/flux/common/netty/channel/ChannelHandlerContext;?? ?? maxLocalRead
maxGlobalRead GLcom/groupbyinc/flux/common/netty/util/Attribute; 1Lcom/groupbyinc/flux/common/netty/util/Attribute;
reopenTask Ljava/lang/Runnable; 8Lcom/groupbyinc/flux/common/netty/channel/ChannelConfig;
waitGlobal msg maximumCumulativeWrittenBytes maximumCumulativeReadBytes channelTrafficCounters X(Lcom/groupbyinc/flux/common/netty/handler/traffic/GlobalChannelTrafficShapingHandler;)V >?
? ?(Lcom/groupbyinc/flux/common/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Lcom/groupbyinc/flux/common/netty/channel/ChannelPromise;)V
getWriteLimit? ?
? writeTimeToWait??
Q? 7com/groupbyinc/flux/common/netty/channel/ChannelPromise Write suspend: submitWrite ?(Lcom/groupbyinc/flux/common/netty/channel/ChannelHandlerContext;Ljava/lang/Object;JJJLcom/groupbyinc/flux/common/netty/channel/ChannelPromise;)V
maxLocalWrite maxGlobalWrite isEmpty
?
?(JLjava/lang/Object;JLcom/groupbyinc/flux/common/netty/channel/ChannelPromise;Lcom/groupbyinc/flux/common/netty/handler/traffic/GlobalChannelTrafficShapingHandler$1;)V >
addLast?
checkWriteSuspend E(Lcom/groupbyinc/flux/common/netty/channel/ChannelHandlerContext;JJ)V
setUserDefinedWritability D(Lcom/groupbyinc/flux/common/netty/channel/ChannelHandlerContext;Z)V
relativeTimeAction # ?(Lcom/groupbyinc/flux/common/netty/handler/traffic/GlobalChannelTrafficShapingHandler;Lcom/groupbyinc/flux/common/netty/channel/ChannelHandlerContext;Lcom/groupbyinc/flux/common/netty/handler/traffic/GlobalChannelTrafficShapingHandler$PerChannel;J)V >
newToSend
writedelay delay globalSizeExceeded futureNow forSchedule sendAllValid ?(Lcom/groupbyinc/flux/common/netty/channel/ChannelHandlerContext;Lcom/groupbyinc/flux/common/netty/handler/traffic/GlobalChannelTrafficShapingHandler$PerChannel;J)V pollFirst) ?
* ? # , addFirst.?
/ flush B()Lcom/groupbyinc/flux/common/netty/channel/ChannelHandlerContext;12 ?3 (I)V >5
6
( Write Channel Limit: 9 Read Channel Limit: ;
access$100'(
> x0 x1 x2 x3 Lcom/groupbyinc/flux/common/netty/util/internal/logging/InternalLoggerFactoryE getInstance Z(Ljava/lang/Class;)Lcom/groupbyinc/flux/common/netty/util/internal/logging/InternalLogger;GH
FI Signature
ConstantValue Code LocalVariableTable LineNumberTable
StackMapTable
Exceptions LocalVariableTypeTable [()Ljava/util/Collection;
SourceFile InnerClasses RuntimeVisibleAnnotations ! K ! @ " # B $ # B % # &