public abstract class org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy
super_class: java.lang.Object
{
protected final org.apache.cassandra.utils.CoalescingStrategies$Parker parker;
descriptor: Lorg/apache/cassandra/utils/CoalescingStrategies$Parker;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final org.slf4j.Logger logger;
descriptor: Lorg/slf4j/Logger;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected volatile boolean shouldLogAverage;
descriptor: Z
flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE
protected final java.nio.ByteBuffer logBuffer;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private java.io.RandomAccessFile ras;
descriptor: Ljava/io/RandomAccessFile;
flags: (0x0002) ACC_PRIVATE
private final java.lang.String displayName;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
protected void <init>(org.apache.cassandra.utils.CoalescingStrategies$Parker, org.slf4j.Logger, java.lang.String);
descriptor: (Lorg/apache/cassandra/utils/CoalescingStrategies$Parker;Lorg/slf4j/Logger;Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy.shouldLogAverage:Z
2: aload 0
aload 1
putfield org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy.parker:Lorg/apache/cassandra/utils/CoalescingStrategies$Parker;
3: aload 0
aload 2
putfield org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy.logger:Lorg/slf4j/Logger;
4: aload 0
aload 3
putfield org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy.displayName:Ljava/lang/String;
5: getstatic org.apache.cassandra.utils.CoalescingStrategies.DEBUG_COALESCING:Z
ifeq 10
6: aload 0
invokedynamic run(Lorg/apache/cassandra/utils/CoalescingStrategies$CoalescingStrategy;)Ljava/lang/Runnable;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()V
org/apache/cassandra/utils/CoalescingStrategies$CoalescingStrategy.lambda$0()V (7)
()V
7: new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " debug thread"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: invokestatic org.apache.cassandra.concurrent.NamedThreadFactory.createThread:(Ljava/lang/Runnable;Ljava/lang/String;)Ljava/lang/Thread;
9: invokevirtual java.lang.Thread.start:()V
10: StackMap locals: org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy org.apache.cassandra.utils.CoalescingStrategies$Parker org.slf4j.Logger java.lang.String
StackMap stack:
aconst_null
astore 4
start local 4 11: aconst_null
astore 5
start local 5 12: getstatic org.apache.cassandra.utils.CoalescingStrategies.DEBUG_COALESCING:Z
ifeq 20
13: new java.lang.StringBuilder
dup
ldc "coalescing_"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy.displayName: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;
ldc ".log"
new java.io.File
dup
getstatic org.apache.cassandra.utils.CoalescingStrategies.DEBUG_COALESCING_PATH:Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
astore 6
start local 6 14: new java.io.RandomAccessFile
dup
aload 6
ldc "rw"
invokespecial java.io.RandomAccessFile.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 4
15: aload 0
getfield org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy.ras:Ljava/io/RandomAccessFile;
invokevirtual java.io.RandomAccessFile.getChannel:()Ljava/nio/channels/FileChannel;
getstatic java.nio.channels.FileChannel$MapMode.READ_WRITE:Ljava/nio/channels/FileChannel$MapMode;
lconst_0
ldc 2147483647
invokevirtual java.nio.channels.FileChannel.map:(Ljava/nio/channels/FileChannel$MapMode;JJ)Ljava/nio/MappedByteBuffer;
astore 5
16: aload 5
lconst_0
invokevirtual java.nio.ByteBuffer.putLong:(J)Ljava/nio/ByteBuffer;
pop
end local 6 17: goto 20
18: StackMap locals: org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy org.apache.cassandra.utils.CoalescingStrategies$Parker org.slf4j.Logger java.lang.String java.io.RandomAccessFile java.nio.ByteBuffer
StackMap stack: java.lang.Exception
astore 6
start local 6 19: aload 2
ldc "Unable to create output file for debugging coalescing"
aload 6
invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 6 20: StackMap locals:
StackMap stack:
aload 0
aload 4
putfield org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy.ras:Ljava/io/RandomAccessFile;
21: aload 0
aload 5
putfield org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy.logBuffer:Ljava/nio/ByteBuffer;
22: return
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 23 0 this Lorg/apache/cassandra/utils/CoalescingStrategies$CoalescingStrategy;
0 23 1 parker Lorg/apache/cassandra/utils/CoalescingStrategies$Parker;
0 23 2 logger Lorg/slf4j/Logger;
0 23 3 displayName Ljava/lang/String;
11 23 4 rasTemp Ljava/io/RandomAccessFile;
12 23 5 logBufferTemp Ljava/nio/ByteBuffer;
14 17 6 outFile Ljava/io/File;
19 20 6 e Ljava/lang/Exception;
Exception table:
from to target type
13 17 18 Class java.lang.Exception
MethodParameters:
Name Flags
parker
logger
displayName
protected final void debugGap(long);
descriptor: (J)V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: getstatic org.apache.cassandra.utils.CoalescingStrategies.DEBUG_COALESCING:Z
ifeq 3
aload 0
getfield org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy.shouldLogAverage:Z
ifeq 3
1: aload 0
iconst_0
putfield org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy.shouldLogAverage:Z
2: aload 0
getfield org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy.logger:Lorg/slf4j/Logger;
ldc "{} gap {}\u03BCs"
aload 0
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
lload 1
invokevirtual java.util.concurrent.TimeUnit.toMicros:(J)J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/utils/CoalescingStrategies$CoalescingStrategy;
0 4 1 averageGap J
MethodParameters:
Name Flags
averageGap
protected final void debugTimestamp(long);
descriptor: (J)V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: getstatic org.apache.cassandra.utils.CoalescingStrategies.DEBUG_COALESCING:Z
ifeq 3
aload 0
getfield org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy.logBuffer:Ljava/nio/ByteBuffer;
ifnull 3
1: aload 0
getfield org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy.logBuffer:Ljava/nio/ByteBuffer;
iconst_0
aload 0
getfield org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy.logBuffer:Ljava/nio/ByteBuffer;
iconst_0
invokevirtual java.nio.ByteBuffer.getLong:(I)J
lconst_1
ladd
invokevirtual java.nio.ByteBuffer.putLong:(IJ)Ljava/nio/ByteBuffer;
pop
2: aload 0
getfield org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy.logBuffer:Ljava/nio/ByteBuffer;
lload 1
invokevirtual java.nio.ByteBuffer.putLong:(J)Ljava/nio/ByteBuffer;
pop
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/utils/CoalescingStrategies$CoalescingStrategy;
0 4 1 timestamp J
MethodParameters:
Name Flags
timestamp
protected final <C extends org.apache.cassandra.utils.CoalescingStrategies$Coalescable> void debugTimestamps(java.util.Collection<C>);
descriptor: (Ljava/util/Collection;)V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: getstatic org.apache.cassandra.utils.CoalescingStrategies.DEBUG_COALESCING:Z
ifeq 5
1: aload 1
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy java.util.Collection top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.utils.CoalescingStrategies$Coalescable
astore 2
start local 2 3: aload 0
aload 2
invokeinterface org.apache.cassandra.utils.CoalescingStrategies$Coalescable.timestampNanos:()J
invokevirtual org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy.debugTimestamp:(J)V
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: StackMap locals: org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy java.util.Collection
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/cassandra/utils/CoalescingStrategies$CoalescingStrategy;
0 6 1 coalescables Ljava/util/Collection<TC;>;
3 4 2 coalescable TC;
Signature: <C::Lorg/apache/cassandra/utils/CoalescingStrategies$Coalescable;>(Ljava/util/Collection<TC;>;)V
MethodParameters:
Name Flags
coalescables
public <C extends org.apache.cassandra.utils.CoalescingStrategies$Coalescable> void coalesce(java.util.concurrent.BlockingQueue<C>, java.util.List<C>, );
descriptor: (Ljava/util/concurrent/BlockingQueue;Ljava/util/List;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokeinterface java.util.List.isEmpty:()Z
ldc "out list should be empty"
invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/Object;)V
1: aload 0
aload 1
aload 2
iload 3
invokevirtual org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy.coalesceInternal:(Ljava/util/concurrent/BlockingQueue;Ljava/util/List;I)V
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/utils/CoalescingStrategies$CoalescingStrategy;
0 3 1 input Ljava/util/concurrent/BlockingQueue<TC;>;
0 3 2 out Ljava/util/List<TC;>;
0 3 3 maxItems I
Exceptions:
throws java.lang.InterruptedException
Signature: <C::Lorg/apache/cassandra/utils/CoalescingStrategies$Coalescable;>(Ljava/util/concurrent/BlockingQueue<TC;>;Ljava/util/List<TC;>;I)V
MethodParameters:
Name Flags
input
out
maxItems
protected abstract <C extends org.apache.cassandra.utils.CoalescingStrategies$Coalescable> void coalesceInternal(java.util.concurrent.BlockingQueue<C>, java.util.List<C>, );
descriptor: (Ljava/util/concurrent/BlockingQueue;Ljava/util/List;I)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Exceptions:
throws java.lang.InterruptedException
Signature: <C::Lorg/apache/cassandra/utils/CoalescingStrategies$Coalescable;>(Ljava/util/concurrent/BlockingQueue<TC;>;Ljava/util/List<TC;>;I)V
MethodParameters:
Name Flags
input
out
maxItems
private void lambda$0();
descriptor: ()V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
ldc 5000
invokestatic java.lang.Thread.sleep:(J)V
1: goto 4
2: StackMap locals:
StackMap stack: java.lang.InterruptedException
pop
3: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy.shouldLogAverage:Z
5: goto 0
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/cassandra/utils/CoalescingStrategies$CoalescingStrategy;
Exception table:
from to target type
0 1 2 Class java.lang.InterruptedException
}
SourceFile: "CoalescingStrategies.java"
NestHost: org.apache.cassandra.utils.CoalescingStrategies
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public MapMode = java.nio.channels.FileChannel$MapMode of java.nio.channels.FileChannel
public abstract Coalescable = org.apache.cassandra.utils.CoalescingStrategies$Coalescable of org.apache.cassandra.utils.CoalescingStrategies
public abstract CoalescingStrategy = org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy of org.apache.cassandra.utils.CoalescingStrategies
abstract Parker = org.apache.cassandra.utils.CoalescingStrategies$Parker of org.apache.cassandra.utils.CoalescingStrategies