public class org.apache.cassandra.streaming.StreamManager$StreamRateLimiter
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.streaming.StreamManager$StreamRateLimiter
super_class: java.lang.Object
{
private static final double BYTES_PER_MEGABIT;
descriptor: D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 131072.0
private static final com.google.common.util.concurrent.RateLimiter limiter;
descriptor: Lcom/google/common/util/concurrent/RateLimiter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final com.google.common.util.concurrent.RateLimiter interDCLimiter;
descriptor: Lcom/google/common/util/concurrent/RateLimiter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final boolean isLocalDC;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc 1.7976931348623157E308
invokestatic com.google.common.util.concurrent.RateLimiter.create:(D)Lcom/google/common/util/concurrent/RateLimiter;
putstatic org.apache.cassandra.streaming.StreamManager$StreamRateLimiter.limiter:Lcom/google/common/util/concurrent/RateLimiter;
1: ldc 1.7976931348623157E308
invokestatic com.google.common.util.concurrent.RateLimiter.create:(D)Lcom/google/common/util/concurrent/RateLimiter;
putstatic org.apache.cassandra.streaming.StreamManager$StreamRateLimiter.interDCLimiter:Lcom/google/common/util/concurrent/RateLimiter;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getStreamThroughputOutboundMegabitsPerSec:()I
i2d
ldc 131072.0
dmul
dstore 2
start local 2 2: aload 0
dload 2
getstatic org.apache.cassandra.streaming.StreamManager$StreamRateLimiter.limiter:Lcom/google/common/util/concurrent/RateLimiter;
invokevirtual org.apache.cassandra.streaming.StreamManager$StreamRateLimiter.mayUpdateThroughput:(DLcom/google/common/util/concurrent/RateLimiter;)V
3: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getInterDCStreamThroughputOutboundMegabitsPerSec:()I
i2d
ldc 131072.0
dmul
dstore 4
start local 4 4: aload 0
dload 4
getstatic org.apache.cassandra.streaming.StreamManager$StreamRateLimiter.interDCLimiter:Lcom/google/common/util/concurrent/RateLimiter;
invokevirtual org.apache.cassandra.streaming.StreamManager$StreamRateLimiter.mayUpdateThroughput:(DLcom/google/common/util/concurrent/RateLimiter;)V
5: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getLocalDataCenter:()Ljava/lang/String;
ifnull 10
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getEndpointSnitch:()Lorg/apache/cassandra/locator/IEndpointSnitch;
ifnull 10
6: aload 0
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getLocalDataCenter:()Ljava/lang/String;
7: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getEndpointSnitch:()Lorg/apache/cassandra/locator/IEndpointSnitch;
aload 1
invokeinterface org.apache.cassandra.locator.IEndpointSnitch.getDatacenter:(Ljava/net/InetAddress;)Ljava/lang/String;
8: invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
putfield org.apache.cassandra.streaming.StreamManager$StreamRateLimiter.isLocalDC:Z
9: goto 11
10: StackMap locals: org.apache.cassandra.streaming.StreamManager$StreamRateLimiter java.net.InetAddress double double
StackMap stack:
aload 0
iconst_1
putfield org.apache.cassandra.streaming.StreamManager$StreamRateLimiter.isLocalDC:Z
11: StackMap locals:
StackMap stack:
return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/apache/cassandra/streaming/StreamManager$StreamRateLimiter;
0 12 1 peer Ljava/net/InetAddress;
2 12 2 throughput D
4 12 4 interDCThroughput D
MethodParameters:
Name Flags
peer
private void mayUpdateThroughput(double, com.google.common.util.concurrent.RateLimiter);
descriptor: (DLcom/google/common/util/concurrent/RateLimiter;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 3 0: dload 1
dconst_0
dcmpl
ifne 2
1: ldc 1.7976931348623157E308
dstore 1
2: StackMap locals:
StackMap stack:
aload 3
invokevirtual com.google.common.util.concurrent.RateLimiter.getRate:()D
dload 1
dcmpl
ifeq 4
3: aload 3
dload 1
invokevirtual com.google.common.util.concurrent.RateLimiter.setRate:(D)V
4: StackMap locals:
StackMap stack:
return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/streaming/StreamManager$StreamRateLimiter;
0 5 1 limit D
0 5 3 rateLimiter Lcom/google/common/util/concurrent/RateLimiter;
MethodParameters:
Name Flags
limit
rateLimiter
public void acquire(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.apache.cassandra.streaming.StreamManager$StreamRateLimiter.limiter:Lcom/google/common/util/concurrent/RateLimiter;
iload 1
invokevirtual com.google.common.util.concurrent.RateLimiter.acquire:(I)D
pop2
1: aload 0
getfield org.apache.cassandra.streaming.StreamManager$StreamRateLimiter.isLocalDC:Z
ifne 3
2: getstatic org.apache.cassandra.streaming.StreamManager$StreamRateLimiter.interDCLimiter:Lcom/google/common/util/concurrent/RateLimiter;
iload 1
invokevirtual com.google.common.util.concurrent.RateLimiter.acquire:(I)D
pop2
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/streaming/StreamManager$StreamRateLimiter;
0 4 1 toTransfer I
MethodParameters:
Name Flags
toTransfer
}
SourceFile: "StreamManager.java"
NestHost: org.apache.cassandra.streaming.StreamManager
InnerClasses:
public StreamRateLimiter = org.apache.cassandra.streaming.StreamManager$StreamRateLimiter of org.apache.cassandra.streaming.StreamManager