final class org.apache.cassandra.db.ColumnFamilyStore$Flush implements java.lang.Runnable
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.apache.cassandra.db.ColumnFamilyStore$Flush
  super_class: java.lang.Object
{
  final org.apache.cassandra.utils.concurrent.OpOrder$Barrier writeBarrier;
    descriptor: Lorg/apache/cassandra/utils/concurrent/OpOrder$Barrier;
    flags: (0x0010) ACC_FINAL

  final java.util.List<org.apache.cassandra.db.Memtable> memtables;
    descriptor: Ljava/util/List;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/List<Lorg/apache/cassandra/db/Memtable;>;

  final com.google.common.util.concurrent.ListenableFutureTask<org.apache.cassandra.db.commitlog.CommitLogPosition> postFlushTask;
    descriptor: Lcom/google/common/util/concurrent/ListenableFutureTask;
    flags: (0x0010) ACC_FINAL
    Signature: Lcom/google/common/util/concurrent/ListenableFutureTask<Lorg/apache/cassandra/db/commitlog/CommitLogPosition;>;

  final org.apache.cassandra.db.ColumnFamilyStore$PostFlush postFlush;
    descriptor: Lorg/apache/cassandra/db/ColumnFamilyStore$PostFlush;
    flags: (0x0010) ACC_FINAL

  final boolean truncate;
    descriptor: Z
    flags: (0x0010) ACC_FINAL

  final org.apache.cassandra.db.ColumnFamilyStore this$0;
    descriptor: Lorg/apache/cassandra/db/ColumnFamilyStore;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private void <init>(org.apache.cassandra.db.ColumnFamilyStore, boolean);
    descriptor: (Lorg/apache/cassandra/db/ColumnFamilyStore;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // org.apache.cassandra.db.ColumnFamilyStore$Flush this
        start local 2 // boolean truncate
         0: .line 1061
            aload 0 /* this */
            aload 1
            putfield org.apache.cassandra.db.ColumnFamilyStore$Flush.this$0:Lorg/apache/cassandra/db/ColumnFamilyStore;
         1: .line 1060
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         2: .line 1055
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.apache.cassandra.db.ColumnFamilyStore$Flush.memtables:Ljava/util/List;
         3: .line 1063
            aload 0 /* this */
            iload 2 /* truncate */
            putfield org.apache.cassandra.db.ColumnFamilyStore$Flush.truncate:Z
         4: .line 1065
            aload 1
            getfield org.apache.cassandra.db.ColumnFamilyStore.metric:Lorg/apache/cassandra/metrics/TableMetrics;
            getfield org.apache.cassandra.metrics.TableMetrics.pendingFlushes:Lcom/codahale/metrics/Counter;
            invokevirtual com.codahale.metrics.Counter.inc:()V
         5: .line 1075
            aload 0 /* this */
            getstatic org.apache.cassandra.db.Keyspace.writeOrder:Lorg/apache/cassandra/utils/concurrent/OpOrder;
            invokevirtual org.apache.cassandra.utils.concurrent.OpOrder.newBarrier:()Lorg/apache/cassandra/utils/concurrent/OpOrder$Barrier;
            putfield org.apache.cassandra.db.ColumnFamilyStore$Flush.writeBarrier:Lorg/apache/cassandra/utils/concurrent/OpOrder$Barrier;
         6: .line 1078
            new java.util.concurrent.atomic.AtomicReference
            dup
            invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
            astore 3 /* commitLogUpperBound */
        start local 3 // java.util.concurrent.atomic.AtomicReference commitLogUpperBound
         7: .line 1079
            aload 1
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.concatWithIndexes:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 5
            goto 13
      StackMap locals: org.apache.cassandra.db.ColumnFamilyStore$Flush org.apache.cassandra.db.ColumnFamilyStore int java.util.concurrent.atomic.AtomicReference top java.util.Iterator
      StackMap stack:
         8: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.ColumnFamilyStore
            astore 4 /* cfs */
        start local 4 // org.apache.cassandra.db.ColumnFamilyStore cfs
         9: .line 1084
            new org.apache.cassandra.db.Memtable
            dup
            aload 3 /* commitLogUpperBound */
            aload 4 /* cfs */
            invokespecial org.apache.cassandra.db.Memtable.<init>:(Ljava/util/concurrent/atomic/AtomicReference;Lorg/apache/cassandra/db/ColumnFamilyStore;)V
            astore 6 /* newMemtable */
        start local 6 // org.apache.cassandra.db.Memtable newMemtable
        10: .line 1085
            aload 4 /* cfs */
            getfield org.apache.cassandra.db.ColumnFamilyStore.data:Lorg/apache/cassandra/db/lifecycle/Tracker;
            iload 2 /* truncate */
            aload 6 /* newMemtable */
            invokevirtual org.apache.cassandra.db.lifecycle.Tracker.switchMemtable:(ZLorg/apache/cassandra/db/Memtable;)Lorg/apache/cassandra/db/Memtable;
            astore 7 /* oldMemtable */
        start local 7 // org.apache.cassandra.db.Memtable oldMemtable
        11: .line 1086
            aload 7 /* oldMemtable */
            aload 0 /* this */
            getfield org.apache.cassandra.db.ColumnFamilyStore$Flush.writeBarrier:Lorg/apache/cassandra/utils/concurrent/OpOrder$Barrier;
            aload 3 /* commitLogUpperBound */
            invokevirtual org.apache.cassandra.db.Memtable.setDiscarding:(Lorg/apache/cassandra/utils/concurrent/OpOrder$Barrier;Ljava/util/concurrent/atomic/AtomicReference;)V
        12: .line 1087
            aload 0 /* this */
            getfield org.apache.cassandra.db.ColumnFamilyStore$Flush.memtables:Ljava/util/List;
            aload 7 /* oldMemtable */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // org.apache.cassandra.db.Memtable oldMemtable
        end local 6 // org.apache.cassandra.db.Memtable newMemtable
        end local 4 // org.apache.cassandra.db.ColumnFamilyStore cfs
        13: .line 1079
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        14: .line 1092
            aload 3 /* commitLogUpperBound */
            invokestatic org.apache.cassandra.db.ColumnFamilyStore.setCommitLogUpperBound:(Ljava/util/concurrent/atomic/AtomicReference;)V
        15: .line 1097
            aload 0 /* this */
            getfield org.apache.cassandra.db.ColumnFamilyStore$Flush.writeBarrier:Lorg/apache/cassandra/utils/concurrent/OpOrder$Barrier;
            invokevirtual org.apache.cassandra.utils.concurrent.OpOrder$Barrier.issue:()V
        16: .line 1098
            aload 0 /* this */
            new org.apache.cassandra.db.ColumnFamilyStore$PostFlush
            dup
            aload 1
            aload 0 /* this */
            getfield org.apache.cassandra.db.ColumnFamilyStore$Flush.memtables:Ljava/util/List;
            invokespecial org.apache.cassandra.db.ColumnFamilyStore$PostFlush.<init>:(Lorg/apache/cassandra/db/ColumnFamilyStore;Ljava/util/List;)V
            putfield org.apache.cassandra.db.ColumnFamilyStore$Flush.postFlush:Lorg/apache/cassandra/db/ColumnFamilyStore$PostFlush;
        17: .line 1099
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.db.ColumnFamilyStore$Flush.postFlush:Lorg/apache/cassandra/db/ColumnFamilyStore$PostFlush;
            invokestatic com.google.common.util.concurrent.ListenableFutureTask.create:(Ljava/util/concurrent/Callable;)Lcom/google/common/util/concurrent/ListenableFutureTask;
            putfield org.apache.cassandra.db.ColumnFamilyStore$Flush.postFlushTask:Lcom/google/common/util/concurrent/ListenableFutureTask;
        18: .line 1100
            return
        end local 3 // java.util.concurrent.atomic.AtomicReference commitLogUpperBound
        end local 2 // boolean truncate
        end local 0 // org.apache.cassandra.db.ColumnFamilyStore$Flush this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   19     0                 this  Lorg/apache/cassandra/db/ColumnFamilyStore$Flush;
            0   19     2             truncate  Z
            7   19     3  commitLogUpperBound  Ljava/util/concurrent/atomic/AtomicReference<Lorg/apache/cassandra/db/commitlog/CommitLogPosition;>;
            9   13     4                  cfs  Lorg/apache/cassandra/db/ColumnFamilyStore;
           10   13     6          newMemtable  Lorg/apache/cassandra/db/Memtable;
           11   13     7          oldMemtable  Lorg/apache/cassandra/db/Memtable;
    MethodParameters:
          Name  Flags
      this$0    final
      truncate  

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.apache.cassandra.db.ColumnFamilyStore$Flush this
         0: .line 1106
            aload 0 /* this */
            getfield org.apache.cassandra.db.ColumnFamilyStore$Flush.writeBarrier:Lorg/apache/cassandra/utils/concurrent/OpOrder$Barrier;
            invokevirtual org.apache.cassandra.utils.concurrent.OpOrder$Barrier.markBlocking:()V
         1: .line 1107
            aload 0 /* this */
            getfield org.apache.cassandra.db.ColumnFamilyStore$Flush.writeBarrier:Lorg/apache/cassandra/utils/concurrent/OpOrder$Barrier;
            invokevirtual org.apache.cassandra.utils.concurrent.OpOrder$Barrier.await:()V
         2: .line 1110
            aload 0 /* this */
            getfield org.apache.cassandra.db.ColumnFamilyStore$Flush.memtables:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 5
      StackMap locals: org.apache.cassandra.db.ColumnFamilyStore$Flush top java.util.Iterator
      StackMap stack:
         3: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.Memtable
            astore 1 /* memtable */
        start local 1 // org.apache.cassandra.db.Memtable memtable
         4: .line 1111
            aload 1 /* memtable */
            getfield org.apache.cassandra.db.Memtable.cfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
            getfield org.apache.cassandra.db.ColumnFamilyStore.data:Lorg/apache/cassandra/db/lifecycle/Tracker;
            aload 1 /* memtable */
            invokevirtual org.apache.cassandra.db.lifecycle.Tracker.markFlushing:(Lorg/apache/cassandra/db/Memtable;)V
        end local 1 // org.apache.cassandra.db.Memtable memtable
         5: .line 1110
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 1113
            aload 0 /* this */
            getfield org.apache.cassandra.db.ColumnFamilyStore$Flush.this$0:Lorg/apache/cassandra/db/ColumnFamilyStore;
            getfield org.apache.cassandra.db.ColumnFamilyStore.metric:Lorg/apache/cassandra/metrics/TableMetrics;
            getfield org.apache.cassandra.metrics.TableMetrics.memtableSwitchCount:Lcom/codahale/metrics/Counter;
            invokevirtual com.codahale.metrics.Counter.inc:()V
         7: .line 1118
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.db.ColumnFamilyStore$Flush.memtables:Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.cassandra.db.Memtable
            iconst_1
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore$Flush.flushMemtable:(Lorg/apache/cassandra/db/Memtable;Z)Ljava/util/Collection;
            pop
         8: .line 1119
            iconst_1
            istore 1 /* i */
        start local 1 // int i
         9: goto 12
        10: .line 1120
      StackMap locals: org.apache.cassandra.db.ColumnFamilyStore$Flush int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.db.ColumnFamilyStore$Flush.memtables:Ljava/util/List;
            iload 1 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.cassandra.db.Memtable
            iconst_0
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore$Flush.flushMemtable:(Lorg/apache/cassandra/db/Memtable;Z)Ljava/util/Collection;
            pop
        11: .line 1119
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 1 /* i */
            aload 0 /* this */
            getfield org.apache.cassandra.db.ColumnFamilyStore$Flush.memtables:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 10
        end local 1 // int i
        13: .line 1121
            goto 17
        14: .line 1122
      StackMap locals: org.apache.cassandra.db.ColumnFamilyStore$Flush
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
        15: .line 1124
            aload 1 /* t */
            invokestatic org.apache.cassandra.utils.JVMStabilityInspector.inspectThrowable:(Ljava/lang/Throwable;)V
        16: .line 1125
            aload 0 /* this */
            getfield org.apache.cassandra.db.ColumnFamilyStore$Flush.postFlush:Lorg/apache/cassandra/db/ColumnFamilyStore$PostFlush;
            aload 1 /* t */
            putfield org.apache.cassandra.db.ColumnFamilyStore$PostFlush.flushFailure:Ljava/lang/Throwable;
        end local 1 // java.lang.Throwable t
        17: .line 1128
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.db.ColumnFamilyStore$Flush.postFlush:Lorg/apache/cassandra/db/ColumnFamilyStore$PostFlush;
            getfield org.apache.cassandra.db.ColumnFamilyStore$PostFlush.latch:Ljava/util/concurrent/CountDownLatch;
            invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
        18: .line 1129
            return
        end local 0 // org.apache.cassandra.db.ColumnFamilyStore$Flush this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   19     0      this  Lorg/apache/cassandra/db/ColumnFamilyStore$Flush;
            4    5     1  memtable  Lorg/apache/cassandra/db/Memtable;
            9   13     1         i  I
           15   17     1         t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           7    13      14  Class java.lang.Throwable

  public java.util.Collection<org.apache.cassandra.io.sstable.format.SSTableReader> flushMemtable(org.apache.cassandra.db.Memtable, boolean);
    descriptor: (Lorg/apache/cassandra/db/Memtable;Z)Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=24, args_size=3
        start local 0 // org.apache.cassandra.db.ColumnFamilyStore$Flush this
        start local 1 // org.apache.cassandra.db.Memtable memtable
        start local 2 // boolean flushNonCf2i
         0: .line 1133
            aload 1 /* memtable */
            invokevirtual org.apache.cassandra.db.Memtable.isClean:()Z
            ifne 1
            aload 0 /* this */
            getfield org.apache.cassandra.db.ColumnFamilyStore$Flush.truncate:Z
            ifeq 4
         1: .line 1135
      StackMap locals:
      StackMap stack:
            aload 1 /* memtable */
            getfield org.apache.cassandra.db.Memtable.cfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
            aload 1 /* memtable */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.replaceFlushed:(Lorg/apache/cassandra/db/Memtable;Ljava/util/Collection;)V
         2: .line 1136
            aload 0 /* this */
            aload 1 /* memtable */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore$Flush.reclaim:(Lorg/apache/cassandra/db/Memtable;)V
         3: .line 1137
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            areturn
         4: .line 1140
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* futures */
        start local 3 // java.util.List futures
         5: .line 1141
            lconst_0
            lstore 4 /* totalBytesOnDisk */
        start local 4 // long totalBytesOnDisk
         6: .line 1142
            lconst_0
            lstore 6 /* maxBytesOnDisk */
        start local 6 // long maxBytesOnDisk
         7: .line 1143
            ldc 9223372036854775807
            lstore 8 /* minBytesOnDisk */
        start local 8 // long minBytesOnDisk
         8: .line 1144
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 10 /* sstables */
        start local 10 // java.util.List sstables
         9: .line 1145
            aconst_null
            astore 11
            aconst_null
            astore 12
        10: getstatic org.apache.cassandra.db.compaction.OperationType.FLUSH:Lorg/apache/cassandra/db/compaction/OperationType;
            invokestatic org.apache.cassandra.db.lifecycle.LifecycleTransaction.offline:(Lorg/apache/cassandra/db/compaction/OperationType;)Lorg/apache/cassandra/db/lifecycle/LifecycleTransaction;
            astore 13 /* txn */
        start local 13 // org.apache.cassandra.db.lifecycle.LifecycleTransaction txn
        11: .line 1147
            aconst_null
            astore 14 /* flushRunnables */
        start local 14 // java.util.List flushRunnables
        12: .line 1148
            aconst_null
            astore 15 /* flushResults */
        start local 15 // java.util.List flushResults
        13: .line 1153
            aload 1 /* memtable */
            aload 13 /* txn */
            invokevirtual org.apache.cassandra.db.Memtable.flushRunnables:(Lorg/apache/cassandra/db/lifecycle/LifecycleTransaction;)Ljava/util/List;
            astore 14 /* flushRunnables */
        14: .line 1155
            iconst_0
            istore 16 /* i */
        start local 16 // int i
        15: goto 18
        16: .line 1156
      StackMap locals: org.apache.cassandra.db.ColumnFamilyStore$Flush org.apache.cassandra.db.Memtable int java.util.List long long long java.util.List java.lang.Throwable java.lang.Throwable org.apache.cassandra.db.lifecycle.LifecycleTransaction java.util.List java.util.List int
      StackMap stack:
            aload 3 /* futures */
            getstatic org.apache.cassandra.db.ColumnFamilyStore.perDiskflushExecutors:[Ljava/util/concurrent/ExecutorService;
            iload 16 /* i */
            aaload
            aload 14 /* flushRunnables */
            iload 16 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.util.concurrent.Callable
            invokeinterface java.util.concurrent.ExecutorService.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        17: .line 1155
            iinc 16 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 16 /* i */
            aload 14 /* flushRunnables */
            invokeinterface java.util.List.size:()I
            if_icmplt 16
        end local 16 // int i
        19: .line 1164
            iload 2 /* flushNonCf2i */
            ifeq 21
        20: .line 1165
            aload 0 /* this */
            getfield org.apache.cassandra.db.ColumnFamilyStore$Flush.this$0:Lorg/apache/cassandra/db/ColumnFamilyStore;
            getfield org.apache.cassandra.db.ColumnFamilyStore.indexManager:Lorg/apache/cassandra/index/SecondaryIndexManager;
            invokevirtual org.apache.cassandra.index.SecondaryIndexManager.flushAllNonCFSBackedIndexesBlocking:()V
        21: .line 1167
      StackMap locals:
      StackMap stack:
            aload 3 /* futures */
            invokestatic org.apache.cassandra.utils.FBUtilities.waitOnFutures:(Ljava/lang/Iterable;)Ljava/util/List;
            invokestatic com.google.common.collect.Lists.newArrayList:(Ljava/lang/Iterable;)Ljava/util/ArrayList;
            astore 15 /* flushResults */
        22: .line 1168
            goto 27
        23: .line 1169
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 16 /* t */
        start local 16 // java.lang.Throwable t
        24: .line 1171
            aload 1 /* memtable */
            aload 14 /* flushRunnables */
            aload 16 /* t */
            invokevirtual org.apache.cassandra.db.Memtable.abortRunnables:(Ljava/util/List;Ljava/lang/Throwable;)Ljava/lang/Throwable;
            astore 16 /* t */
        25: .line 1172
            aload 13 /* txn */
            aload 16 /* t */
            invokevirtual org.apache.cassandra.db.lifecycle.LifecycleTransaction.abort:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            astore 16 /* t */
        26: .line 1173
            aload 16 /* t */
            invokestatic com.google.common.base.Throwables.propagate:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 16 // java.lang.Throwable t
        27: .line 1178
      StackMap locals:
      StackMap stack:
            aload 15 /* flushResults */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 16 /* writerIterator */
        start local 16 // java.util.Iterator writerIterator
        28: .line 1179
            goto 35
        29: .line 1182
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 16 /* writerIterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.io.sstable.SSTableMultiWriter
            astore 17 /* writer */
        start local 17 // org.apache.cassandra.io.sstable.SSTableMultiWriter writer
        30: .line 1183
            aload 17 /* writer */
            invokeinterface org.apache.cassandra.io.sstable.SSTableMultiWriter.getFilePointer:()J
            lconst_0
            lcmp
            ifle 33
        31: .line 1185
            aload 17 /* writer */
            iconst_1
            invokeinterface org.apache.cassandra.io.sstable.SSTableMultiWriter.setOpenResult:(Z)Lorg/apache/cassandra/io/sstable/SSTableMultiWriter;
            invokeinterface org.apache.cassandra.io.sstable.SSTableMultiWriter.prepareToCommit:()V
        32: .line 1186
            goto 35
        33: .line 1189
      StackMap locals: org.apache.cassandra.io.sstable.SSTableMultiWriter
      StackMap stack:
            aload 17 /* writer */
            aconst_null
            invokeinterface org.apache.cassandra.io.sstable.SSTableMultiWriter.abort:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            invokestatic org.apache.cassandra.utils.Throwables.maybeFail:(Ljava/lang/Throwable;)V
        34: .line 1190
            aload 16 /* writerIterator */
            invokeinterface java.util.Iterator.remove:()V
        end local 17 // org.apache.cassandra.io.sstable.SSTableMultiWriter writer
        35: .line 1179
      StackMap locals:
      StackMap stack:
            aload 16 /* writerIterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 29
        end local 16 // java.util.Iterator writerIterator
        36: .line 1193
            goto 44
        37: .line 1194
      StackMap locals: org.apache.cassandra.db.ColumnFamilyStore$Flush org.apache.cassandra.db.Memtable int java.util.List long long long java.util.List java.lang.Throwable java.lang.Throwable org.apache.cassandra.db.lifecycle.LifecycleTransaction java.util.List java.util.List
      StackMap stack: java.lang.Throwable
            astore 16 /* t */
        start local 16 // java.lang.Throwable t
        38: .line 1196
            aload 15 /* flushResults */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 18
            goto 41
      StackMap locals: org.apache.cassandra.db.ColumnFamilyStore$Flush org.apache.cassandra.db.Memtable int java.util.List long long long java.util.List java.lang.Throwable java.lang.Throwable org.apache.cassandra.db.lifecycle.LifecycleTransaction java.util.List java.util.List java.lang.Throwable top java.util.Iterator
      StackMap stack:
        39: aload 18
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.io.sstable.SSTableMultiWriter
            astore 17 /* writer */
        start local 17 // org.apache.cassandra.io.sstable.SSTableMultiWriter writer
        40: .line 1197
            aload 17 /* writer */
            aload 16 /* t */
            invokeinterface org.apache.cassandra.io.sstable.SSTableMultiWriter.abort:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            astore 16 /* t */
        end local 17 // org.apache.cassandra.io.sstable.SSTableMultiWriter writer
        41: .line 1196
      StackMap locals:
      StackMap stack:
            aload 18
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 39
        42: .line 1198
            aload 13 /* txn */
            aload 16 /* t */
            invokevirtual org.apache.cassandra.db.lifecycle.LifecycleTransaction.abort:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            astore 16 /* t */
        43: .line 1199
            aload 16 /* t */
            invokestatic com.google.common.base.Throwables.propagate:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            pop
        end local 16 // java.lang.Throwable t
        44: .line 1202
      StackMap locals: org.apache.cassandra.db.ColumnFamilyStore$Flush org.apache.cassandra.db.Memtable int java.util.List long long long java.util.List java.lang.Throwable java.lang.Throwable org.apache.cassandra.db.lifecycle.LifecycleTransaction java.util.List java.util.List
      StackMap stack:
            aload 13 /* txn */
            invokevirtual org.apache.cassandra.db.lifecycle.LifecycleTransaction.prepareToCommit:()V
        45: .line 1204
            aconst_null
            astore 16 /* accumulate */
        start local 16 // java.lang.Throwable accumulate
        46: .line 1205
            aload 15 /* flushResults */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 18
            goto 49
      StackMap locals: org.apache.cassandra.db.ColumnFamilyStore$Flush org.apache.cassandra.db.Memtable int java.util.List long long long java.util.List java.lang.Throwable java.lang.Throwable org.apache.cassandra.db.lifecycle.LifecycleTransaction java.util.List java.util.List java.lang.Throwable top java.util.Iterator
      StackMap stack:
        47: aload 18
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.io.sstable.SSTableMultiWriter
            astore 17 /* writer */
        start local 17 // org.apache.cassandra.io.sstable.SSTableMultiWriter writer
        48: .line 1206
            aload 17 /* writer */
            aload 16 /* accumulate */
            invokeinterface org.apache.cassandra.io.sstable.SSTableMultiWriter.commit:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            astore 16 /* accumulate */
        end local 17 // org.apache.cassandra.io.sstable.SSTableMultiWriter writer
        49: .line 1205
      StackMap locals:
      StackMap stack:
            aload 18
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 47
        50: .line 1208
            aload 13 /* txn */
            aload 16 /* accumulate */
            invokevirtual org.apache.cassandra.db.lifecycle.LifecycleTransaction.commit:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            invokestatic org.apache.cassandra.utils.Throwables.maybeFail:(Ljava/lang/Throwable;)V
        51: .line 1210
            aload 15 /* flushResults */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 18
            goto 63
      StackMap locals:
      StackMap stack:
        52: aload 18
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.io.sstable.SSTableMultiWriter
            astore 17 /* writer */
        start local 17 // org.apache.cassandra.io.sstable.SSTableMultiWriter writer
        53: .line 1212
            aload 17 /* writer */
            invokeinterface org.apache.cassandra.io.sstable.SSTableMultiWriter.finished:()Ljava/util/Collection;
            astore 19 /* flushedSSTables */
        start local 19 // java.util.Collection flushedSSTables
        54: .line 1213
            aload 19 /* flushedSSTables */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 21
            goto 62
      StackMap locals: org.apache.cassandra.db.ColumnFamilyStore$Flush org.apache.cassandra.db.Memtable int java.util.List long long long java.util.List java.lang.Throwable java.lang.Throwable org.apache.cassandra.db.lifecycle.LifecycleTransaction java.util.List java.util.List java.lang.Throwable org.apache.cassandra.io.sstable.SSTableMultiWriter java.util.Iterator java.util.Collection top java.util.Iterator
      StackMap stack:
        55: aload 21
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.io.sstable.format.SSTableReader
            astore 20 /* sstable */
        start local 20 // org.apache.cassandra.io.sstable.format.SSTableReader sstable
        56: .line 1215
            aload 20 /* sstable */
            ifnull 62
        57: .line 1217
            aload 10 /* sstables */
            aload 20 /* sstable */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        58: .line 1218
            aload 20 /* sstable */
            invokevirtual org.apache.cassandra.io.sstable.format.SSTableReader.bytesOnDisk:()J
            lstore 22 /* size */
        start local 22 // long size
        59: .line 1219
            lload 4 /* totalBytesOnDisk */
            lload 22 /* size */
            ladd
            lstore 4 /* totalBytesOnDisk */
        60: .line 1220
            lload 6 /* maxBytesOnDisk */
            lload 22 /* size */
            invokestatic java.lang.Math.max:(JJ)J
            lstore 6 /* maxBytesOnDisk */
        61: .line 1221
            lload 8 /* minBytesOnDisk */
            lload 22 /* size */
            invokestatic java.lang.Math.min:(JJ)J
            lstore 8 /* minBytesOnDisk */
        end local 22 // long size
        end local 20 // org.apache.cassandra.io.sstable.format.SSTableReader sstable
        62: .line 1213
      StackMap locals:
      StackMap stack:
            aload 21
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 55
        end local 19 // java.util.Collection flushedSSTables
        end local 17 // org.apache.cassandra.io.sstable.SSTableMultiWriter writer
        63: .line 1210
      StackMap locals: org.apache.cassandra.db.ColumnFamilyStore$Flush org.apache.cassandra.db.Memtable int java.util.List long long long java.util.List java.lang.Throwable java.lang.Throwable org.apache.cassandra.db.lifecycle.LifecycleTransaction java.util.List java.util.List java.lang.Throwable top java.util.Iterator
      StackMap stack:
            aload 18
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 52
        end local 16 // java.lang.Throwable accumulate
        end local 15 // java.util.List flushResults
        end local 14 // java.util.List flushRunnables
        64: .line 1225
            aload 13 /* txn */
            ifnull 70
            aload 13 /* txn */
            invokevirtual org.apache.cassandra.db.lifecycle.LifecycleTransaction.close:()V
            goto 70
      StackMap locals: org.apache.cassandra.db.ColumnFamilyStore$Flush org.apache.cassandra.db.Memtable int java.util.List long long long java.util.List java.lang.Throwable java.lang.Throwable org.apache.cassandra.db.lifecycle.LifecycleTransaction
      StackMap stack: java.lang.Throwable
        65: astore 11
            aload 13 /* txn */
            ifnull 66
            aload 13 /* txn */
            invokevirtual org.apache.cassandra.db.lifecycle.LifecycleTransaction.close:()V
        end local 13 // org.apache.cassandra.db.lifecycle.LifecycleTransaction txn
      StackMap locals:
      StackMap stack:
        66: aload 11
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        67: astore 12
            aload 11
            ifnonnull 68
            aload 12
            astore 11
            goto 69
      StackMap locals:
      StackMap stack:
        68: aload 11
            aload 12
            if_acmpeq 69
            aload 11
            aload 12
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        69: aload 11
            athrow
        70: .line 1226
      StackMap locals:
      StackMap stack:
            aload 1 /* memtable */
            getfield org.apache.cassandra.db.Memtable.cfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
            aload 1 /* memtable */
            aload 10 /* sstables */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.replaceFlushed:(Lorg/apache/cassandra/db/Memtable;Ljava/util/Collection;)V
        71: .line 1227
            aload 0 /* this */
            aload 1 /* memtable */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore$Flush.reclaim:(Lorg/apache/cassandra/db/Memtable;)V
        72: .line 1228
            aload 1 /* memtable */
            getfield org.apache.cassandra.db.Memtable.cfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
            getfield org.apache.cassandra.db.ColumnFamilyStore.compactionStrategyManager:Lorg/apache/cassandra/db/compaction/CompactionStrategyManager;
            getfield org.apache.cassandra.db.compaction.CompactionStrategyManager.compactionLogger:Lorg/apache/cassandra/db/compaction/CompactionLogger;
            aload 10 /* sstables */
            invokevirtual org.apache.cassandra.db.compaction.CompactionLogger.flush:(Ljava/util/Collection;)V
        73: .line 1229
            getstatic org.apache.cassandra.db.ColumnFamilyStore.logger:Lorg/slf4j/Logger;
            ldc "Flushed to {} ({} sstables, {}), biggest {}, smallest {}"
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
        74: .line 1230
            aload 10 /* sstables */
            aastore
            dup
            iconst_1
        75: .line 1231
            aload 10 /* sstables */
            invokeinterface java.util.List.size:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
        76: .line 1232
            lload 4 /* totalBytesOnDisk */
            invokestatic org.apache.cassandra.utils.FBUtilities.prettyPrintMemory:(J)Ljava/lang/String;
            aastore
            dup
            iconst_3
        77: .line 1233
            lload 6 /* maxBytesOnDisk */
            invokestatic org.apache.cassandra.utils.FBUtilities.prettyPrintMemory:(J)Ljava/lang/String;
            aastore
            dup
            iconst_4
        78: .line 1234
            lload 8 /* minBytesOnDisk */
            invokestatic org.apache.cassandra.utils.FBUtilities.prettyPrintMemory:(J)Ljava/lang/String;
            aastore
        79: .line 1229
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
        80: .line 1235
            aload 10 /* sstables */
            areturn
        end local 10 // java.util.List sstables
        end local 8 // long minBytesOnDisk
        end local 6 // long maxBytesOnDisk
        end local 4 // long totalBytesOnDisk
        end local 3 // java.util.List futures
        end local 2 // boolean flushNonCf2i
        end local 1 // org.apache.cassandra.db.Memtable memtable
        end local 0 // org.apache.cassandra.db.ColumnFamilyStore$Flush this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   81     0              this  Lorg/apache/cassandra/db/ColumnFamilyStore$Flush;
            0   81     1          memtable  Lorg/apache/cassandra/db/Memtable;
            0   81     2      flushNonCf2i  Z
            5   81     3           futures  Ljava/util/List<Ljava/util/concurrent/Future<Lorg/apache/cassandra/io/sstable/SSTableMultiWriter;>;>;
            6   81     4  totalBytesOnDisk  J
            7   81     6    maxBytesOnDisk  J
            8   81     8    minBytesOnDisk  J
            9   81    10          sstables  Ljava/util/List<Lorg/apache/cassandra/io/sstable/format/SSTableReader;>;
           11   66    13               txn  Lorg/apache/cassandra/db/lifecycle/LifecycleTransaction;
           12   64    14    flushRunnables  Ljava/util/List<Lorg/apache/cassandra/db/Memtable$FlushRunnable;>;
           13   64    15      flushResults  Ljava/util/List<Lorg/apache/cassandra/io/sstable/SSTableMultiWriter;>;
           15   19    16                 i  I
           24   27    16                 t  Ljava/lang/Throwable;
           28   36    16    writerIterator  Ljava/util/Iterator<Lorg/apache/cassandra/io/sstable/SSTableMultiWriter;>;
           30   35    17            writer  Lorg/apache/cassandra/io/sstable/SSTableMultiWriter;
           38   44    16                 t  Ljava/lang/Throwable;
           40   41    17            writer  Lorg/apache/cassandra/io/sstable/SSTableMultiWriter;
           46   64    16        accumulate  Ljava/lang/Throwable;
           48   49    17            writer  Lorg/apache/cassandra/io/sstable/SSTableMultiWriter;
           53   63    17            writer  Lorg/apache/cassandra/io/sstable/SSTableMultiWriter;
           54   63    19   flushedSSTables  Ljava/util/Collection<Lorg/apache/cassandra/io/sstable/format/SSTableReader;>;
           56   62    20           sstable  Lorg/apache/cassandra/io/sstable/format/SSTableReader;
           59   62    22              size  J
      Exception table:
        from    to  target  type
          13    22      23  Class java.lang.Throwable
          27    36      37  Class java.lang.Throwable
          11    64      65  any
          10    67      67  any
    Signature: (Lorg/apache/cassandra/db/Memtable;Z)Ljava/util/Collection<Lorg/apache/cassandra/io/sstable/format/SSTableReader;>;
    MethodParameters:
              Name  Flags
      memtable      
      flushNonCf2i  

  private void reclaim(org.apache.cassandra.db.Memtable);
    descriptor: (Lorg/apache/cassandra/db/Memtable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // org.apache.cassandra.db.ColumnFamilyStore$Flush this
        start local 1 // org.apache.cassandra.db.Memtable memtable
         0: .line 1241
            aload 0 /* this */
            getfield org.apache.cassandra.db.ColumnFamilyStore$Flush.this$0:Lorg/apache/cassandra/db/ColumnFamilyStore;
            getfield org.apache.cassandra.db.ColumnFamilyStore.readOrdering:Lorg/apache/cassandra/utils/concurrent/OpOrder;
            invokevirtual org.apache.cassandra.utils.concurrent.OpOrder.newBarrier:()Lorg/apache/cassandra/utils/concurrent/OpOrder$Barrier;
            astore 2 /* readBarrier */
        start local 2 // org.apache.cassandra.utils.concurrent.OpOrder$Barrier readBarrier
         1: .line 1242
            aload 2 /* readBarrier */
            invokevirtual org.apache.cassandra.utils.concurrent.OpOrder$Barrier.issue:()V
         2: .line 1243
            aload 0 /* this */
            getfield org.apache.cassandra.db.ColumnFamilyStore$Flush.postFlushTask:Lcom/google/common/util/concurrent/ListenableFutureTask;
            new org.apache.cassandra.db.ColumnFamilyStore$Flush$1
            dup
            aload 0 /* this */
            aload 2 /* readBarrier */
            aload 1 /* memtable */
            invokespecial org.apache.cassandra.db.ColumnFamilyStore$Flush$1.<init>:(Lorg/apache/cassandra/db/ColumnFamilyStore$Flush;Lorg/apache/cassandra/utils/concurrent/OpOrder$Barrier;Lorg/apache/cassandra/db/Memtable;)V
         3: .line 1250
            getstatic org.apache.cassandra.db.ColumnFamilyStore.reclaimExecutor:Ljava/util/concurrent/ExecutorService;
         4: .line 1243
            invokevirtual com.google.common.util.concurrent.ListenableFutureTask.addListener:(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V
         5: .line 1251
            return
        end local 2 // org.apache.cassandra.utils.concurrent.OpOrder$Barrier readBarrier
        end local 1 // org.apache.cassandra.db.Memtable memtable
        end local 0 // org.apache.cassandra.db.ColumnFamilyStore$Flush this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lorg/apache/cassandra/db/ColumnFamilyStore$Flush;
            0    6     1     memtable  Lorg/apache/cassandra/db/Memtable;
            1    6     2  readBarrier  Lorg/apache/cassandra/utils/concurrent/OpOrder$Barrier;
    MethodParameters:
          Name  Flags
      memtable  final
}
SourceFile: "ColumnFamilyStore.java"
NestHost: org.apache.cassandra.db.ColumnFamilyStore
InnerClasses:
  private final Flush = org.apache.cassandra.db.ColumnFamilyStore$Flush of org.apache.cassandra.db.ColumnFamilyStore
  org.apache.cassandra.db.ColumnFamilyStore$Flush$1
  private final PostFlush = org.apache.cassandra.db.ColumnFamilyStore$PostFlush of org.apache.cassandra.db.ColumnFamilyStore
  FlushRunnable = org.apache.cassandra.db.Memtable$FlushRunnable of org.apache.cassandra.db.Memtable
  public final Barrier = org.apache.cassandra.utils.concurrent.OpOrder$Barrier of org.apache.cassandra.utils.concurrent.OpOrder