public class org.apache.cassandra.tools.SSTableExpiredBlockers
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.tools.SSTableExpiredBlockers
super_class: java.lang.Object
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/tools/SSTableExpiredBlockers;
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=13, args_size=1
start local 0 0: getstatic java.lang.System.out:Ljava/io/PrintStream;
astore 1
start local 1 1: aload 0
arraylength
iconst_2
if_icmpge 4
2: aload 1
ldc "Usage: sstableexpiredblockers <keyspace> <table>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
3: iconst_1
invokestatic java.lang.System.exit:(I)V
4: StackMap locals: java.io.PrintStream
StackMap stack:
invokestatic org.apache.cassandra.tools.Util.initDatabaseDescriptor:()V
5: aload 0
aload 0
arraylength
iconst_2
isub
aaload
astore 2
start local 2 6: aload 0
aload 0
arraylength
iconst_1
isub
aaload
astore 3
start local 3 7: getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
iconst_0
invokevirtual org.apache.cassandra.config.Schema.loadFromDisk:(Z)Lorg/apache/cassandra/config/Schema;
pop
8: getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
aload 2
aload 3
invokevirtual org.apache.cassandra.config.Schema.getCFMetaData:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/config/CFMetaData;
astore 4
start local 4 9: aload 4
ifnonnull 14
10: new java.lang.IllegalArgumentException
dup
ldc "Unknown keyspace/table %s.%s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
11: aload 2
aastore
dup
iconst_1
12: aload 3
aastore
13: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals: java.lang.String java.lang.String org.apache.cassandra.config.CFMetaData
StackMap stack:
aload 2
invokestatic org.apache.cassandra.db.Keyspace.openWithoutSSTables:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
astore 5
start local 5 15: aload 5
aload 3
invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStore:(Ljava/lang/String;)Lorg/apache/cassandra/db/ColumnFamilyStore;
astore 6
start local 6 16: aload 6
invokevirtual org.apache.cassandra.db.ColumnFamilyStore.getDirectories:()Lorg/apache/cassandra/db/Directories;
getstatic org.apache.cassandra.db.Directories$OnTxnErr.THROW:Lorg/apache/cassandra/db/Directories$OnTxnErr;
invokevirtual org.apache.cassandra.db.Directories.sstableLister:(Lorg/apache/cassandra/db/Directories$OnTxnErr;)Lorg/apache/cassandra/db/Directories$SSTableLister;
iconst_1
invokevirtual org.apache.cassandra.db.Directories$SSTableLister.skipTemporary:(Z)Lorg/apache/cassandra/db/Directories$SSTableLister;
astore 7
start local 7 17: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 8
start local 8 18: aload 7
invokevirtual org.apache.cassandra.db.Directories$SSTableLister.list:()Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 10
goto 26
StackMap locals: java.lang.String[] java.io.PrintStream java.lang.String java.lang.String org.apache.cassandra.config.CFMetaData org.apache.cassandra.db.Keyspace org.apache.cassandra.db.ColumnFamilyStore org.apache.cassandra.db.Directories$SSTableLister java.util.Set top java.util.Iterator
StackMap stack:
19: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 9
start local 9 20: aload 9
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
ifnull 26
21: aload 9
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast org.apache.cassandra.io.sstable.Descriptor
invokestatic org.apache.cassandra.io.sstable.format.SSTableReader.open:(Lorg/apache/cassandra/io/sstable/Descriptor;)Lorg/apache/cassandra/io/sstable/format/SSTableReader;
astore 11
start local 11 22: aload 8
aload 11
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 11 23: goto 26
24: StackMap locals: java.lang.String[] java.io.PrintStream java.lang.String java.lang.String org.apache.cassandra.config.CFMetaData org.apache.cassandra.db.Keyspace org.apache.cassandra.db.ColumnFamilyStore org.apache.cassandra.db.Directories$SSTableLister java.util.Set java.util.Map$Entry java.util.Iterator
StackMap stack: java.lang.Throwable
astore 11
start local 11 25: aload 1
new java.lang.StringBuilder
dup
ldc "Couldn't open sstable: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast org.apache.cassandra.io.sstable.Descriptor
getstatic org.apache.cassandra.io.sstable.Component.DATA:Lorg/apache/cassandra/io/sstable/Component;
invokevirtual org.apache.cassandra.io.sstable.Descriptor.filenameFor:(Lorg/apache/cassandra/io/sstable/Component;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 11
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 11 end local 9 26: StackMap locals: java.lang.String[] java.io.PrintStream java.lang.String java.lang.String org.apache.cassandra.config.CFMetaData org.apache.cassandra.db.Keyspace org.apache.cassandra.db.ColumnFamilyStore org.apache.cassandra.db.Directories$SSTableLister java.util.Set top java.util.Iterator
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 19
27: aload 8
invokeinterface java.util.Set.isEmpty:()Z
ifeq 30
28: aload 1
new java.lang.StringBuilder
dup
ldc "No sstables for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
29: iconst_1
invokestatic java.lang.System.exit:(I)V
30: StackMap locals: java.lang.String[] java.io.PrintStream java.lang.String java.lang.String org.apache.cassandra.config.CFMetaData org.apache.cassandra.db.Keyspace org.apache.cassandra.db.ColumnFamilyStore org.apache.cassandra.db.Directories$SSTableLister java.util.Set
StackMap stack:
invokestatic java.lang.System.currentTimeMillis:()J
ldc 1000
ldiv
l2i
aload 4
getfield org.apache.cassandra.config.CFMetaData.params:Lorg/apache/cassandra/schema/TableParams;
getfield org.apache.cassandra.schema.TableParams.gcGraceSeconds:I
isub
istore 9
start local 9 31: aload 8
iload 9
invokestatic org.apache.cassandra.tools.SSTableExpiredBlockers.checkForExpiredSSTableBlockers:(Ljava/lang/Iterable;I)Lcom/google/common/collect/Multimap;
astore 10
start local 10 32: aload 10
invokeinterface com.google.common.collect.Multimap.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 12
goto 39
StackMap locals: java.lang.String[] java.io.PrintStream java.lang.String java.lang.String org.apache.cassandra.config.CFMetaData org.apache.cassandra.db.Keyspace org.apache.cassandra.db.ColumnFamilyStore org.apache.cassandra.db.Directories$SSTableLister java.util.Set int com.google.common.collect.Multimap top java.util.Iterator
StackMap stack:
33: aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.io.sstable.format.SSTableReader
astore 11
start local 11 34: aload 1
ldc "%s blocks %d expired sstables from getting dropped: %s%n"
iconst_3
anewarray java.lang.Object
dup
iconst_0
35: aload 11
invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
invokestatic org.apache.cassandra.tools.SSTableExpiredBlockers.formatForExpiryTracing:(Ljava/lang/Iterable;)Ljava/lang/String;
aastore
dup
iconst_1
36: aload 10
aload 11
invokeinterface com.google.common.collect.Multimap.get:(Ljava/lang/Object;)Ljava/util/Collection;
invokeinterface java.util.Collection.size:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
37: aload 10
aload 11
invokeinterface com.google.common.collect.Multimap.get:(Ljava/lang/Object;)Ljava/util/Collection;
invokestatic org.apache.cassandra.tools.SSTableExpiredBlockers.formatForExpiryTracing:(Ljava/lang/Iterable;)Ljava/lang/String;
aastore
38: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 11 39: StackMap locals:
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 33
40: iconst_0
invokestatic java.lang.System.exit:(I)V
41: return
end local 10 end local 9 end local 8 end local 7 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 42 0 args [Ljava/lang/String;
1 42 1 out Ljava/io/PrintStream;
6 42 2 keyspace Ljava/lang/String;
7 42 3 columnfamily Ljava/lang/String;
9 42 4 metadata Lorg/apache/cassandra/config/CFMetaData;
15 42 5 ks Lorg/apache/cassandra/db/Keyspace;
16 42 6 cfs Lorg/apache/cassandra/db/ColumnFamilyStore;
17 42 7 lister Lorg/apache/cassandra/db/Directories$SSTableLister;
18 42 8 sstables Ljava/util/Set<Lorg/apache/cassandra/io/sstable/format/SSTableReader;>;
20 26 9 sstable Ljava/util/Map$Entry<Lorg/apache/cassandra/io/sstable/Descriptor;Ljava/util/Set<Lorg/apache/cassandra/io/sstable/Component;>;>;
22 23 11 reader Lorg/apache/cassandra/io/sstable/format/SSTableReader;
25 26 11 t Ljava/lang/Throwable;
31 42 9 gcBefore I
32 42 10 blockers Lcom/google/common/collect/Multimap<Lorg/apache/cassandra/io/sstable/format/SSTableReader;Lorg/apache/cassandra/io/sstable/format/SSTableReader;>;
34 39 11 blocker Lorg/apache/cassandra/io/sstable/format/SSTableReader;
Exception table:
from to target type
21 23 24 Class java.lang.Throwable
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
args
public static com.google.common.collect.Multimap<org.apache.cassandra.io.sstable.format.SSTableReader, org.apache.cassandra.io.sstable.format.SSTableReader> checkForExpiredSSTableBlockers(java.lang.Iterable<org.apache.cassandra.io.sstable.format.SSTableReader>, int);
descriptor: (Ljava/lang/Iterable;I)Lcom/google/common/collect/Multimap;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: invokestatic com.google.common.collect.ArrayListMultimap.create:()Lcom/google/common/collect/ArrayListMultimap;
astore 2
start local 2 1: aload 0
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 4
goto 11
StackMap locals: java.lang.Iterable int com.google.common.collect.Multimap top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.io.sstable.format.SSTableReader
astore 3
start local 3 3: aload 3
invokevirtual org.apache.cassandra.io.sstable.format.SSTableReader.getSSTableMetadata:()Lorg/apache/cassandra/io/sstable/metadata/StatsMetadata;
getfield org.apache.cassandra.io.sstable.metadata.StatsMetadata.maxLocalDeletionTime:I
iload 1
if_icmpge 11
4: aload 0
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 6
goto 10
StackMap locals: java.lang.Iterable int com.google.common.collect.Multimap org.apache.cassandra.io.sstable.format.SSTableReader java.util.Iterator top java.util.Iterator
StackMap stack:
5: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.io.sstable.format.SSTableReader
astore 5
start local 5 6: aload 5
aload 3
invokevirtual org.apache.cassandra.io.sstable.format.SSTableReader.equals:(Ljava/lang/Object;)Z
ifne 10
7: aload 5
invokevirtual org.apache.cassandra.io.sstable.format.SSTableReader.getMinTimestamp:()J
aload 3
invokevirtual org.apache.cassandra.io.sstable.format.SSTableReader.getMaxTimestamp:()J
lcmp
ifgt 10
8: aload 5
invokevirtual org.apache.cassandra.io.sstable.format.SSTableReader.getSSTableMetadata:()Lorg/apache/cassandra/io/sstable/metadata/StatsMetadata;
getfield org.apache.cassandra.io.sstable.metadata.StatsMetadata.maxLocalDeletionTime:I
iload 1
if_icmple 10
9: aload 2
aload 5
aload 3
invokeinterface com.google.common.collect.Multimap.put:(Ljava/lang/Object;Ljava/lang/Object;)Z
pop
end local 5 10: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
end local 3 11: StackMap locals: java.lang.Iterable int com.google.common.collect.Multimap top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
12: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 sstables Ljava/lang/Iterable<Lorg/apache/cassandra/io/sstable/format/SSTableReader;>;
0 13 1 gcBefore I
1 13 2 blockers Lcom/google/common/collect/Multimap<Lorg/apache/cassandra/io/sstable/format/SSTableReader;Lorg/apache/cassandra/io/sstable/format/SSTableReader;>;
3 11 3 sstable Lorg/apache/cassandra/io/sstable/format/SSTableReader;
6 10 5 potentialBlocker Lorg/apache/cassandra/io/sstable/format/SSTableReader;
Signature: (Ljava/lang/Iterable<Lorg/apache/cassandra/io/sstable/format/SSTableReader;>;I)Lcom/google/common/collect/Multimap<Lorg/apache/cassandra/io/sstable/format/SSTableReader;Lorg/apache/cassandra/io/sstable/format/SSTableReader;>;
MethodParameters:
Name Flags
sstables
gcBefore
private static java.lang.String formatForExpiryTracing(java.lang.Iterable<org.apache.cassandra.io.sstable.format.SSTableReader>);
descriptor: (Ljava/lang/Iterable;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=4, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1
start local 1 1: aload 0
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: java.lang.Iterable java.lang.StringBuilder top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.io.sstable.format.SSTableReader
astore 2
start local 2 3: aload 1
ldc "[%s (minTS = %d, maxTS = %d, maxLDT = %d)]"
iconst_4
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
dup
iconst_1
aload 2
invokevirtual org.apache.cassandra.io.sstable.format.SSTableReader.getMinTimestamp:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
aload 2
invokevirtual org.apache.cassandra.io.sstable.format.SSTableReader.getMaxTimestamp:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_3
aload 2
invokevirtual org.apache.cassandra.io.sstable.format.SSTableReader.getSSTableMetadata:()Lorg/apache/cassandra/io/sstable/metadata/StatsMetadata;
getfield org.apache.cassandra.io.sstable.metadata.StatsMetadata.maxLocalDeletionTime:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 sstables Ljava/lang/Iterable<Lorg/apache/cassandra/io/sstable/format/SSTableReader;>;
1 6 1 sb Ljava/lang/StringBuilder;
3 4 2 sstable Lorg/apache/cassandra/io/sstable/format/SSTableReader;
Signature: (Ljava/lang/Iterable<Lorg/apache/cassandra/io/sstable/format/SSTableReader;>;)Ljava/lang/String;
MethodParameters:
Name Flags
sstables
}
SourceFile: "SSTableExpiredBlockers.java"
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map
public final OnTxnErr = org.apache.cassandra.db.Directories$OnTxnErr of org.apache.cassandra.db.Directories
public SSTableLister = org.apache.cassandra.db.Directories$SSTableLister of org.apache.cassandra.db.Directories