class org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor extends org.apache.cassandra.service.AbstractReadExecutor
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor
super_class: org.apache.cassandra.service.AbstractReadExecutor
{
private final org.apache.cassandra.db.ColumnFamilyStore cfs;
descriptor: Lorg/apache/cassandra/db/ColumnFamilyStore;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile boolean speculated;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
public void <init>(org.apache.cassandra.db.Keyspace, org.apache.cassandra.db.ColumnFamilyStore, org.apache.cassandra.db.ReadCommand, org.apache.cassandra.db.ConsistencyLevel, java.util.List<java.net.InetAddress>, );
descriptor: (Lorg/apache/cassandra/db/Keyspace;Lorg/apache/cassandra/db/ColumnFamilyStore;Lorg/apache/cassandra/db/ReadCommand;Lorg/apache/cassandra/db/ConsistencyLevel;Ljava/util/List;J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=8, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
aload 1
aload 3
aload 4
aload 5
lload 6
invokespecial org.apache.cassandra.service.AbstractReadExecutor.<init>:(Lorg/apache/cassandra/db/Keyspace;Lorg/apache/cassandra/db/ReadCommand;Lorg/apache/cassandra/db/ConsistencyLevel;Ljava/util/List;J)V
1: aload 0
iconst_0
putfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.speculated:Z
2: aload 0
aload 2
putfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.cfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
3: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/service/AbstractReadExecutor$SpeculatingReadExecutor;
0 4 1 keyspace Lorg/apache/cassandra/db/Keyspace;
0 4 2 cfs Lorg/apache/cassandra/db/ColumnFamilyStore;
0 4 3 command Lorg/apache/cassandra/db/ReadCommand;
0 4 4 consistencyLevel Lorg/apache/cassandra/db/ConsistencyLevel;
0 4 5 targetReplicas Ljava/util/List<Ljava/net/InetAddress;>;
0 4 6 queryStartNanoTime J
Signature: (Lorg/apache/cassandra/db/Keyspace;Lorg/apache/cassandra/db/ColumnFamilyStore;Lorg/apache/cassandra/db/ReadCommand;Lorg/apache/cassandra/db/ConsistencyLevel;Ljava/util/List<Ljava/net/InetAddress;>;J)V
MethodParameters:
Name Flags
keyspace
cfs
command
consistencyLevel
targetReplicas
queryStartNanoTime
public void executeAsync();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.targetReplicas:Ljava/util/List;
iconst_0
aload 0
getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.targetReplicas:Ljava/util/List;
invokeinterface java.util.List.size:()I
iconst_1
isub
invokeinterface java.util.List.subList:(II)Ljava/util/List;
astore 1
start local 1 1: aload 0
getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.handler:Lorg/apache/cassandra/service/ReadCallback;
getfield org.apache.cassandra.service.ReadCallback.blockfor:I
aload 1
invokeinterface java.util.List.size:()I
if_icmpge 6
2: aload 0
aload 1
iconst_0
iconst_2
invokeinterface java.util.List.subList:(II)Ljava/util/List;
invokevirtual org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.makeDataRequests:(Ljava/lang/Iterable;)V
3: aload 1
invokeinterface java.util.List.size:()I
iconst_2
if_icmple 9
4: aload 0
aload 1
iconst_2
aload 1
invokeinterface java.util.List.size:()I
invokeinterface java.util.List.subList:(II)Ljava/util/List;
invokevirtual org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.makeDigestRequests:(Ljava/lang/Iterable;)V
5: goto 9
6: StackMap locals: java.util.List
StackMap stack:
aload 0
aload 1
iconst_0
iconst_1
invokeinterface java.util.List.subList:(II)Ljava/util/List;
invokevirtual org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.makeDataRequests:(Ljava/lang/Iterable;)V
7: aload 1
invokeinterface java.util.List.size:()I
iconst_1
if_icmple 9
8: aload 0
aload 1
iconst_1
aload 1
invokeinterface java.util.List.size:()I
invokeinterface java.util.List.subList:(II)Ljava/util/List;
invokevirtual org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.makeDigestRequests:(Ljava/lang/Iterable;)V
9: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/apache/cassandra/service/AbstractReadExecutor$SpeculatingReadExecutor;
1 10 1 initialReplicas Ljava/util/List<Ljava/net/InetAddress;>;
public void maybeTryAdditionalReplicas();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.cfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
getfield org.apache.cassandra.db.ColumnFamilyStore.sampleLatencyNanos:J
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
aload 0
getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.command:Lorg/apache/cassandra/db/ReadCommand;
invokevirtual org.apache.cassandra.db.ReadCommand.getTimeout:()J
invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
lcmp
ifle 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.handler:Lorg/apache/cassandra/service/ReadCallback;
aload 0
getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.cfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
getfield org.apache.cassandra.db.ColumnFamilyStore.sampleLatencyNanos:J
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual org.apache.cassandra.service.ReadCallback.await:(JLjava/util/concurrent/TimeUnit;)Z
ifne 14
3: aload 0
getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.command:Lorg/apache/cassandra/db/ReadCommand;
astore 1
start local 1 4: aload 0
getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.handler:Lorg/apache/cassandra/service/ReadCallback;
getfield org.apache.cassandra.service.ReadCallback.resolver:Lorg/apache/cassandra/service/ResponseResolver;
invokevirtual org.apache.cassandra.service.ResponseResolver.isDataPresent:()Z
ifeq 6
5: aload 0
getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.command:Lorg/apache/cassandra/db/ReadCommand;
invokevirtual org.apache.cassandra.db.ReadCommand.copyAsDigestQuery:()Lorg/apache/cassandra/db/ReadCommand;
astore 1
6: StackMap locals: org.apache.cassandra.db.ReadCommand
StackMap stack:
aload 0
getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.targetReplicas:Ljava/util/List;
invokestatic com.google.common.collect.Iterables.getLast:(Ljava/lang/Iterable;)Ljava/lang/Object;
checkcast java.net.InetAddress
astore 2
start local 2 7: aload 0
getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.traceState:Lorg/apache/cassandra/tracing/TraceState;
ifnull 9
8: aload 0
getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.traceState:Lorg/apache/cassandra/tracing/TraceState;
ldc "speculating read retry on {}"
aload 2
invokevirtual org.apache.cassandra.tracing.TraceState.trace:(Ljava/lang/String;Ljava/lang/Object;)V
9: StackMap locals: java.net.InetAddress
StackMap stack:
getstatic org.apache.cassandra.service.AbstractReadExecutor.logger:Lorg/slf4j/Logger;
ldc "speculating read retry on {}"
aload 2
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
10: invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
aload 2
invokevirtual org.apache.cassandra.net.MessagingService.getVersion:(Ljava/net/InetAddress;)I
istore 3
start local 3 11: invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
aload 1
iload 3
invokevirtual org.apache.cassandra.db.ReadCommand.createMessage:(I)Lorg/apache/cassandra/net/MessageOut;
aload 2
aload 0
getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.handler:Lorg/apache/cassandra/service/ReadCallback;
invokevirtual org.apache.cassandra.net.MessagingService.sendRRWithFailure:(Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;Lorg/apache/cassandra/net/IAsyncCallbackWithFailure;)I
pop
12: aload 0
iconst_1
putfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.speculated:Z
13: aload 0
getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.cfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
getfield org.apache.cassandra.db.ColumnFamilyStore.metric:Lorg/apache/cassandra/metrics/TableMetrics;
getfield org.apache.cassandra.metrics.TableMetrics.speculativeRetries:Lcom/codahale/metrics/Counter;
invokevirtual com.codahale.metrics.Counter.inc:()V
end local 3 end local 2 end local 1 14: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/apache/cassandra/service/AbstractReadExecutor$SpeculatingReadExecutor;
4 14 1 retryCommand Lorg/apache/cassandra/db/ReadCommand;
7 14 2 extraReplica Ljava/net/InetAddress;
11 14 3 version I
public java.util.Collection<java.net.InetAddress> getContactedReplicas();
descriptor: ()Ljava/util/Collection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.speculated:Z
ifeq 2
1: aload 0
getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.targetReplicas:Ljava/util/List;
goto 3
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.targetReplicas:Ljava/util/List;
iconst_0
aload 0
getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.targetReplicas:Ljava/util/List;
invokeinterface java.util.List.size:()I
iconst_1
isub
invokeinterface java.util.List.subList:(II)Ljava/util/List;
3: StackMap locals:
StackMap stack: java.util.List
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/service/AbstractReadExecutor$SpeculatingReadExecutor;
Signature: ()Ljava/util/Collection<Ljava/net/InetAddress;>;
}
SourceFile: "AbstractReadExecutor.java"
NestHost: org.apache.cassandra.service.AbstractReadExecutor
InnerClasses:
private SpeculatingReadExecutor = org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor of org.apache.cassandra.service.AbstractReadExecutor