public class org.apache.cassandra.tools.SSTableOfflineRelevel
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.tools.SSTableOfflineRelevel
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 // org.apache.cassandra.tools.SSTableOfflineRelevel this
0: .line 73
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // org.apache.cassandra.tools.SSTableOfflineRelevel this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/tools/SSTableOfflineRelevel;
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=12, args_size=1
start local 0 // java.lang.String[] args
0: .line 80
getstatic java.lang.System.out:Ljava/io/PrintStream;
astore 1 /* out */
start local 1 // java.io.PrintStream out
1: .line 81
aload 0 /* args */
arraylength
iconst_2
if_icmpge 5
2: .line 83
aload 1 /* out */
ldc "This command should be run with Cassandra stopped!"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
3: .line 84
aload 1 /* out */
ldc "Usage: sstableofflinerelevel [--dry-run] <keyspace> <columnfamily>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
4: .line 85
iconst_1
invokestatic java.lang.System.exit:(I)V
5: .line 88
StackMap locals: java.io.PrintStream
StackMap stack:
invokestatic org.apache.cassandra.tools.Util.initDatabaseDescriptor:()V
6: .line 90
aload 0 /* args */
iconst_0
aaload
ldc "--dry-run"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
istore 2 /* dryRun */
start local 2 // boolean dryRun
7: .line 91
aload 0 /* args */
aload 0 /* args */
arraylength
iconst_2
isub
aaload
astore 3 /* keyspace */
start local 3 // java.lang.String keyspace
8: .line 92
aload 0 /* args */
aload 0 /* args */
arraylength
iconst_1
isub
aaload
astore 4 /* columnfamily */
start local 4 // java.lang.String columnfamily
9: .line 93
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
10: .line 95
getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
aload 3 /* keyspace */
aload 4 /* columnfamily */
invokevirtual org.apache.cassandra.config.Schema.getCFMetaData:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/config/CFMetaData;
ifnonnull 15
11: .line 96
new java.lang.IllegalArgumentException
dup
ldc "Unknown keyspace/columnFamily %s.%s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
12: .line 97
aload 3 /* keyspace */
aastore
dup
iconst_1
13: .line 98
aload 4 /* columnfamily */
aastore
14: .line 96
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
15: .line 100
StackMap locals: int java.lang.String java.lang.String
StackMap stack:
aload 3 /* keyspace */
invokestatic org.apache.cassandra.db.Keyspace.openWithoutSSTables:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
astore 5 /* ks */
start local 5 // org.apache.cassandra.db.Keyspace ks
16: .line 101
aload 5 /* ks */
aload 4 /* columnfamily */
invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStore:(Ljava/lang/String;)Lorg/apache/cassandra/db/ColumnFamilyStore;
astore 6 /* cfs */
start local 6 // org.apache.cassandra.db.ColumnFamilyStore cfs
17: .line 102
aload 6 /* cfs */
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 /* lister */
start local 7 // org.apache.cassandra.db.Directories$SSTableLister lister
18: .line 103
invokestatic com.google.common.collect.HashMultimap.create:()Lcom/google/common/collect/HashMultimap;
astore 8 /* sstableMultimap */
start local 8 // com.google.common.collect.SetMultimap sstableMultimap
19: .line 104
aload 7 /* lister */
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 28
StackMap locals: java.lang.String[] java.io.PrintStream int java.lang.String java.lang.String org.apache.cassandra.db.Keyspace org.apache.cassandra.db.ColumnFamilyStore org.apache.cassandra.db.Directories$SSTableLister com.google.common.collect.SetMultimap top java.util.Iterator
StackMap stack:
20: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 9 /* sstable */
start local 9 // java.util.Map$Entry sstable
21: .line 106
aload 9 /* sstable */
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
ifnull 28
22: .line 110
aload 9 /* sstable */
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 /* reader */
start local 11 // org.apache.cassandra.io.sstable.format.SSTableReader reader
23: .line 111
aload 8 /* sstableMultimap */
aload 11 /* reader */
getfield org.apache.cassandra.io.sstable.format.SSTableReader.descriptor:Lorg/apache/cassandra/io/sstable/Descriptor;
getfield org.apache.cassandra.io.sstable.Descriptor.directory:Ljava/io/File;
aload 11 /* reader */
invokeinterface com.google.common.collect.SetMultimap.put:(Ljava/lang/Object;Ljava/lang/Object;)Z
pop
end local 11 // org.apache.cassandra.io.sstable.format.SSTableReader reader
24: .line 112
goto 28
25: .line 113
StackMap locals: java.lang.String[] java.io.PrintStream int java.lang.String java.lang.String org.apache.cassandra.db.Keyspace org.apache.cassandra.db.ColumnFamilyStore org.apache.cassandra.db.Directories$SSTableLister com.google.common.collect.SetMultimap java.util.Map$Entry java.util.Iterator
StackMap stack: java.lang.Throwable
astore 11 /* t */
start local 11 // java.lang.Throwable t
26: .line 115
aload 1 /* out */
new java.lang.StringBuilder
dup
ldc "Couldn't open sstable: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9 /* sstable */
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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
27: .line 116
aload 11 /* t */
invokestatic com.google.common.base.Throwables.propagate:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
pop
end local 11 // java.lang.Throwable t
end local 9 // java.util.Map$Entry sstable
28: .line 104
StackMap locals: java.lang.String[] java.io.PrintStream int java.lang.String java.lang.String org.apache.cassandra.db.Keyspace org.apache.cassandra.db.ColumnFamilyStore org.apache.cassandra.db.Directories$SSTableLister com.google.common.collect.SetMultimap top java.util.Iterator
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 20
29: .line 120
aload 8 /* sstableMultimap */
invokeinterface com.google.common.collect.SetMultimap.isEmpty:()Z
ifeq 32
30: .line 122
aload 1 /* out */
new java.lang.StringBuilder
dup
ldc "No sstables to relevel for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3 /* keyspace */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4 /* columnfamily */
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
31: .line 123
iconst_1
invokestatic java.lang.System.exit:(I)V
32: .line 125
StackMap locals: java.lang.String[] java.io.PrintStream int java.lang.String java.lang.String org.apache.cassandra.db.Keyspace org.apache.cassandra.db.ColumnFamilyStore org.apache.cassandra.db.Directories$SSTableLister com.google.common.collect.SetMultimap
StackMap stack:
aload 8 /* sstableMultimap */
invokeinterface com.google.common.collect.SetMultimap.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 10
goto 38
StackMap locals: java.lang.String[] java.io.PrintStream int java.lang.String java.lang.String org.apache.cassandra.db.Keyspace org.apache.cassandra.db.ColumnFamilyStore org.apache.cassandra.db.Directories$SSTableLister com.google.common.collect.SetMultimap top java.util.Iterator
StackMap stack:
33: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.io.File
astore 9 /* directory */
start local 9 // java.io.File directory
34: .line 127
aload 8 /* sstableMultimap */
aload 9 /* directory */
invokeinterface com.google.common.collect.SetMultimap.get:(Ljava/lang/Object;)Ljava/util/Set;
invokeinterface java.util.Set.isEmpty:()Z
ifne 38
35: .line 129
new org.apache.cassandra.tools.SSTableOfflineRelevel$Relevel
dup
aload 8 /* sstableMultimap */
aload 9 /* directory */
invokeinterface com.google.common.collect.SetMultimap.get:(Ljava/lang/Object;)Ljava/util/Set;
invokespecial org.apache.cassandra.tools.SSTableOfflineRelevel$Relevel.<init>:(Ljava/util/Set;)V
astore 11 /* rl */
start local 11 // org.apache.cassandra.tools.SSTableOfflineRelevel$Relevel rl
36: .line 130
aload 1 /* out */
new java.lang.StringBuilder
dup
ldc "For sstables in "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9 /* directory */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)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
37: .line 131
aload 11 /* rl */
iload 2 /* dryRun */
invokevirtual org.apache.cassandra.tools.SSTableOfflineRelevel$Relevel.relevel:(Z)V
end local 11 // org.apache.cassandra.tools.SSTableOfflineRelevel$Relevel rl
end local 9 // java.io.File directory
38: .line 125
StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 33
39: .line 134
iconst_0
invokestatic java.lang.System.exit:(I)V
40: .line 136
return
end local 8 // com.google.common.collect.SetMultimap sstableMultimap
end local 7 // org.apache.cassandra.db.Directories$SSTableLister lister
end local 6 // org.apache.cassandra.db.ColumnFamilyStore cfs
end local 5 // org.apache.cassandra.db.Keyspace ks
end local 4 // java.lang.String columnfamily
end local 3 // java.lang.String keyspace
end local 2 // boolean dryRun
end local 1 // java.io.PrintStream out
end local 0 // java.lang.String[] args
LocalVariableTable:
Start End Slot Name Signature
0 41 0 args [Ljava/lang/String;
1 41 1 out Ljava/io/PrintStream;
7 41 2 dryRun Z
8 41 3 keyspace Ljava/lang/String;
9 41 4 columnfamily Ljava/lang/String;
16 41 5 ks Lorg/apache/cassandra/db/Keyspace;
17 41 6 cfs Lorg/apache/cassandra/db/ColumnFamilyStore;
18 41 7 lister Lorg/apache/cassandra/db/Directories$SSTableLister;
19 41 8 sstableMultimap Lcom/google/common/collect/SetMultimap<Ljava/io/File;Lorg/apache/cassandra/io/sstable/format/SSTableReader;>;
21 28 9 sstable Ljava/util/Map$Entry<Lorg/apache/cassandra/io/sstable/Descriptor;Ljava/util/Set<Lorg/apache/cassandra/io/sstable/Component;>;>;
23 24 11 reader Lorg/apache/cassandra/io/sstable/format/SSTableReader;
26 28 11 t Ljava/lang/Throwable;
34 38 9 directory Ljava/io/File;
36 38 11 rl Lorg/apache/cassandra/tools/SSTableOfflineRelevel$Relevel;
Exception table:
from to target type
22 24 25 Class java.lang.Throwable
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
args
}
SourceFile: "SSTableOfflineRelevel.java"
NestMembers:
org.apache.cassandra.tools.SSTableOfflineRelevel$Relevel org.apache.cassandra.tools.SSTableOfflineRelevel$Relevel$1
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
private Relevel = org.apache.cassandra.tools.SSTableOfflineRelevel$Relevel of org.apache.cassandra.tools.SSTableOfflineRelevel