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 // org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor this
        start local 1 // org.apache.cassandra.db.Keyspace keyspace
        start local 2 // org.apache.cassandra.db.ColumnFamilyStore cfs
        start local 3 // org.apache.cassandra.db.ReadCommand command
        start local 4 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
        start local 5 // java.util.List targetReplicas
        start local 6 // long queryStartNanoTime
         0: .line 248
            aload 0 /* this */
            aload 1 /* keyspace */
            aload 3 /* command */
            aload 4 /* consistencyLevel */
            aload 5 /* targetReplicas */
            lload 6 /* queryStartNanoTime */
            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: .line 239
            aload 0 /* this */
            iconst_0
            putfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.speculated:Z
         2: .line 249
            aload 0 /* this */
            aload 2 /* cfs */
            putfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.cfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
         3: .line 250
            return
        end local 6 // long queryStartNanoTime
        end local 5 // java.util.List targetReplicas
        end local 4 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
        end local 3 // org.apache.cassandra.db.ReadCommand command
        end local 2 // org.apache.cassandra.db.ColumnFamilyStore cfs
        end local 1 // org.apache.cassandra.db.Keyspace keyspace
        end local 0 // org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor this
      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 // org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor this
         0: .line 256
            aload 0 /* this */
            getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.targetReplicas:Ljava/util/List;
            iconst_0
            aload 0 /* this */
            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 /* initialReplicas */
        start local 1 // java.util.List initialReplicas
         1: .line 258
            aload 0 /* this */
            getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.handler:Lorg/apache/cassandra/service/ReadCallback;
            getfield org.apache.cassandra.service.ReadCallback.blockfor:I
            aload 1 /* initialReplicas */
            invokeinterface java.util.List.size:()I
            if_icmpge 6
         2: .line 263
            aload 0 /* this */
            aload 1 /* initialReplicas */
            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: .line 264
            aload 1 /* initialReplicas */
            invokeinterface java.util.List.size:()I
            iconst_2
            if_icmple 9
         4: .line 265
            aload 0 /* this */
            aload 1 /* initialReplicas */
            iconst_2
            aload 1 /* initialReplicas */
            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: .line 266
            goto 9
         6: .line 271
      StackMap locals: java.util.List
      StackMap stack:
            aload 0 /* this */
            aload 1 /* initialReplicas */
            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: .line 272
            aload 1 /* initialReplicas */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmple 9
         8: .line 273
            aload 0 /* this */
            aload 1 /* initialReplicas */
            iconst_1
            aload 1 /* initialReplicas */
            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: .line 275
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.List initialReplicas
        end local 0 // org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor this
      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 // org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor this
         0: .line 280
            aload 0 /* this */
            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 /* this */
            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: .line 281
            return
         2: .line 283
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.handler:Lorg/apache/cassandra/service/ReadCallback;
            aload 0 /* this */
            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: .line 286
            aload 0 /* this */
            getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.command:Lorg/apache/cassandra/db/ReadCommand;
            astore 1 /* retryCommand */
        start local 1 // org.apache.cassandra.db.ReadCommand retryCommand
         4: .line 287
            aload 0 /* this */
            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: .line 288
            aload 0 /* this */
            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 /* retryCommand */
         6: .line 290
      StackMap locals: org.apache.cassandra.db.ReadCommand
      StackMap stack:
            aload 0 /* this */
            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 /* extraReplica */
        start local 2 // java.net.InetAddress extraReplica
         7: .line 291
            aload 0 /* this */
            getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.traceState:Lorg/apache/cassandra/tracing/TraceState;
            ifnull 9
         8: .line 292
            aload 0 /* this */
            getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.traceState:Lorg/apache/cassandra/tracing/TraceState;
            ldc "speculating read retry on {}"
            aload 2 /* extraReplica */
            invokevirtual org.apache.cassandra.tracing.TraceState.trace:(Ljava/lang/String;Ljava/lang/Object;)V
         9: .line 293
      StackMap locals: java.net.InetAddress
      StackMap stack:
            getstatic org.apache.cassandra.service.AbstractReadExecutor.logger:Lorg/slf4j/Logger;
            ldc "speculating read retry on {}"
            aload 2 /* extraReplica */
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
        10: .line 294
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 2 /* extraReplica */
            invokevirtual org.apache.cassandra.net.MessagingService.getVersion:(Ljava/net/InetAddress;)I
            istore 3 /* version */
        start local 3 // int version
        11: .line 295
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 1 /* retryCommand */
            iload 3 /* version */
            invokevirtual org.apache.cassandra.db.ReadCommand.createMessage:(I)Lorg/apache/cassandra/net/MessageOut;
            aload 2 /* extraReplica */
            aload 0 /* this */
            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: .line 296
            aload 0 /* this */
            iconst_1
            putfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.speculated:Z
        13: .line 298
            aload 0 /* this */
            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 // int version
        end local 2 // java.net.InetAddress extraReplica
        end local 1 // org.apache.cassandra.db.ReadCommand retryCommand
        14: .line 300
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor this
      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 // org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor this
         0: .line 304
            aload 0 /* this */
            getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.speculated:Z
            ifeq 2
         1: .line 305
            aload 0 /* this */
            getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.targetReplicas:Ljava/util/List;
            goto 3
         2: .line 306
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor.targetReplicas:Ljava/util/List;
            iconst_0
            aload 0 /* this */
            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: .line 304
      StackMap locals:
      StackMap stack: java.util.List
            areturn
        end local 0 // org.apache.cassandra.service.AbstractReadExecutor$SpeculatingReadExecutor this
      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