public abstract class org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager
super_class: java.lang.Object
{
static final org.slf4j.Logger logger;
descriptor: Lorg/slf4j/Logger;
flags: (0x0018) ACC_STATIC, ACC_FINAL
private volatile org.apache.cassandra.db.commitlog.CommitLogSegment availableSegment;
descriptor: Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final org.apache.cassandra.utils.concurrent.WaitQueue segmentPrepared;
descriptor: Lorg/apache/cassandra/utils/concurrent/WaitQueue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.ConcurrentLinkedQueue<org.apache.cassandra.db.commitlog.CommitLogSegment> activeSegments;
descriptor: Ljava/util/concurrent/ConcurrentLinkedQueue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentLinkedQueue<Lorg/apache/cassandra/db/commitlog/CommitLogSegment;>;
private volatile org.apache.cassandra.db.commitlog.CommitLogSegment allocatingFrom;
descriptor: Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
final java.lang.String storageDirectory;
descriptor: Ljava/lang/String;
flags: (0x0010) ACC_FINAL
private final java.util.concurrent.atomic.AtomicLong size;
descriptor: Ljava/util/concurrent/atomic/AtomicLong;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.lang.Thread managerThread;
descriptor: Ljava/lang/Thread;
flags: (0x0002) ACC_PRIVATE
protected final org.apache.cassandra.db.commitlog.CommitLog commitLog;
descriptor: Lorg/apache/cassandra/db/commitlog/CommitLog;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private volatile boolean shutdown;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final java.util.function.BooleanSupplier managerThreadWaitCondition;
descriptor: Ljava/util/function/BooleanSupplier;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.cassandra.utils.concurrent.WaitQueue managerThreadWaitQueue;
descriptor: Lorg/apache/cassandra/utils/concurrent/WaitQueue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final org.apache.cassandra.db.commitlog.SimpleCachedBufferPool bufferPool;
descriptor: Lorg/apache/cassandra/db/commitlog/SimpleCachedBufferPool;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: ldc Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.$assertionsDisabled:Z
3: ldc Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.logger:Lorg/slf4j/Logger;
4: new org.apache.cassandra.db.commitlog.SimpleCachedBufferPool
dup
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getCommitLogMaxCompressionBuffersInPool:()I
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getCommitLogSegmentSize:()I
invokespecial org.apache.cassandra.db.commitlog.SimpleCachedBufferPool.<init>:(II)V
5: putstatic org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.bufferPool:Lorg/apache/cassandra/db/commitlog/SimpleCachedBufferPool;
6: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(org.apache.cassandra.db.commitlog.CommitLog, java.lang.String);
descriptor: (Lorg/apache/cassandra/db/commitlog/CommitLog;Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aconst_null
putfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.availableSegment:Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
2: aload 0
new org.apache.cassandra.utils.concurrent.WaitQueue
dup
invokespecial org.apache.cassandra.utils.concurrent.WaitQueue.<init>:()V
putfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.segmentPrepared:Lorg/apache/cassandra/utils/concurrent/WaitQueue;
3: aload 0
new java.util.concurrent.ConcurrentLinkedQueue
dup
invokespecial java.util.concurrent.ConcurrentLinkedQueue.<init>:()V
putfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.activeSegments:Ljava/util/concurrent/ConcurrentLinkedQueue;
4: aload 0
aconst_null
putfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.allocatingFrom:Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
5: aload 0
new java.util.concurrent.atomic.AtomicLong
dup
invokespecial java.util.concurrent.atomic.AtomicLong.<init>:()V
putfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.size:Ljava/util/concurrent/atomic/AtomicLong;
6: aload 0
aload 0
invokedynamic getAsBoolean(Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;)Ljava/util/function/BooleanSupplier;
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:
()Z
org/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager.lambda$0()Z (7)
()Z
putfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.managerThreadWaitCondition:Ljava/util/function/BooleanSupplier;
7: aload 0
new org.apache.cassandra.utils.concurrent.WaitQueue
dup
invokespecial org.apache.cassandra.utils.concurrent.WaitQueue.<init>:()V
putfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.managerThreadWaitQueue:Lorg/apache/cassandra/utils/concurrent/WaitQueue;
8: aload 0
aload 1
putfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.commitLog:Lorg/apache/cassandra/db/commitlog/CommitLog;
9: aload 0
aload 2
putfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.storageDirectory:Ljava/lang/String;
10: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
0 11 1 commitLog Lorg/apache/cassandra/db/commitlog/CommitLog;
0 11 2 storageDirectory Ljava/lang/String;
MethodParameters:
Name Flags
commitLog final
storageDirectory
void start();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=1
start local 0 0: new org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager$1
dup
aload 0
invokespecial org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager$1.<init>:(Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;)V
astore 1
start local 1 1: aload 0
iconst_0
putfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.shutdown:Z
2: aload 0
aload 1
ldc "COMMIT-LOG-ALLOCATOR"
invokestatic org.apache.cassandra.concurrent.NamedThreadFactory.createThread:(Ljava/lang/Runnable;Ljava/lang/String;)Ljava/lang/Thread;
putfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.managerThread:Ljava/lang/Thread;
3: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.managerThread:Ljava/lang/Thread;
invokevirtual java.lang.Thread.start:()V
4: aload 0
aconst_null
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.advanceAllocatingFrom:(Lorg/apache/cassandra/db/commitlog/CommitLogSegment;)V
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
1 6 1 runnable Ljava/lang/Runnable;
private boolean atSegmentBufferLimit();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.commitLog:Lorg/apache/cassandra/db/commitlog/CommitLog;
invokestatic org.apache.cassandra.db.commitlog.CommitLogSegment.usesBufferPool:(Lorg/apache/cassandra/db/commitlog/CommitLog;)Z
ifeq 1
getstatic org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.bufferPool:Lorg/apache/cassandra/db/commitlog/SimpleCachedBufferPool;
invokevirtual org.apache.cassandra.db.commitlog.SimpleCachedBufferPool.atLimit:()Z
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
private void maybeFlushToReclaim();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.unusedCapacity:()J
lstore 1
start local 1 1: lload 1
lconst_0
lcmp
ifge 14
2: lconst_0
lstore 3
start local 3 3: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 5
start local 5 4: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.activeSegments:Ljava/util/concurrent/ConcurrentLinkedQueue;
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.iterator:()Ljava/util/Iterator;
astore 7
goto 12
StackMap locals: org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager long long java.util.List top java.util.Iterator
StackMap stack:
5: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.db.commitlog.CommitLogSegment
astore 6
start local 6 6: aload 6
aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.allocatingFrom:Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
if_acmpne 8
7: goto 13
8: StackMap locals: org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager long long java.util.List org.apache.cassandra.db.commitlog.CommitLogSegment java.util.Iterator
StackMap stack:
lload 3
aload 6
invokevirtual org.apache.cassandra.db.commitlog.CommitLogSegment.onDiskSize:()J
ladd
lstore 3
9: aload 5
aload 6
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
10: lload 3
lload 1
ladd
lconst_0
lcmp
iflt 12
11: goto 13
end local 6 12: StackMap locals: org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager long long java.util.List top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
13: StackMap locals: org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager long long java.util.List
StackMap stack:
aload 0
aload 5
iconst_0
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.flushDataFrom:(Ljava/util/List;Z)Ljava/util/concurrent/Future;
pop
end local 5 end local 3 14: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
1 15 1 unused J
3 14 3 flushingSize J
4 14 5 segmentsToRecycle Ljava/util/List<Lorg/apache/cassandra/db/commitlog/CommitLogSegment;>;
6 12 6 segment Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
public abstract org.apache.cassandra.db.commitlog.CommitLogSegment$Allocation allocate(org.apache.cassandra.db.Mutation, int);
descriptor: (Lorg/apache/cassandra/db/Mutation;I)Lorg/apache/cassandra/db/commitlog/CommitLogSegment$Allocation;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
MethodParameters:
Name Flags
mutation
size
abstract void handleReplayedSegment(java.io.File);
descriptor: (Ljava/io/File;)V
flags: (0x0400) ACC_ABSTRACT
MethodParameters:
Name Flags
file final
abstract org.apache.cassandra.db.commitlog.CommitLogSegment createSegment();
descriptor: ()Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
flags: (0x0400) ACC_ABSTRACT
abstract void discard(org.apache.cassandra.db.commitlog.CommitLogSegment, boolean);
descriptor: (Lorg/apache/cassandra/db/commitlog/CommitLogSegment;Z)V
flags: (0x0400) ACC_ABSTRACT
MethodParameters:
Name Flags
segment
delete
void advanceAllocatingFrom(org.apache.cassandra.db.commitlog.CommitLogSegment);
descriptor: (Lorg/apache/cassandra/db/commitlog/CommitLogSegment;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tDontInline cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
RuntimeInvisibleAnnotations:
DontInline()
MethodParameters:
Name Flags
old
void awaitAvailableSegment(org.apache.cassandra.db.commitlog.CommitLogSegment);
descriptor: (Lorg/apache/cassandra/db/commitlog/CommitLogSegment;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.segmentPrepared:Lorg/apache/cassandra/utils/concurrent/WaitQueue;
aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.commitLog:Lorg/apache/cassandra/db/commitlog/CommitLog;
getfield org.apache.cassandra.db.commitlog.CommitLog.metrics:Lorg/apache/cassandra/metrics/CommitLogMetrics;
getfield org.apache.cassandra.metrics.CommitLogMetrics.waitingOnSegmentAllocation:Lcom/codahale/metrics/Timer;
invokevirtual com.codahale.metrics.Timer.time:()Lcom/codahale/metrics/Timer$Context;
invokevirtual org.apache.cassandra.utils.concurrent.WaitQueue.register:(Lcom/codahale/metrics/Timer$Context;)Lorg/apache/cassandra/utils/concurrent/WaitQueue$Signal;
astore 2
start local 2 1: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.availableSegment:Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
ifnonnull 3
aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.allocatingFrom:Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
aload 1
if_acmpne 3
2: aload 2
invokeinterface org.apache.cassandra.utils.concurrent.WaitQueue$Signal.awaitUninterruptibly:()V
goto 4
3: StackMap locals: org.apache.cassandra.utils.concurrent.WaitQueue$Signal
StackMap stack:
aload 2
invokeinterface org.apache.cassandra.utils.concurrent.WaitQueue$Signal.cancel:()V
end local 2 4: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.availableSegment:Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
ifnonnull 5
aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.allocatingFrom:Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
aload 1
if_acmpeq 0
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
0 6 1 currentAllocatingFrom Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
1 4 2 prepared Lorg/apache/cassandra/utils/concurrent/WaitQueue$Signal;
MethodParameters:
Name Flags
currentAllocatingFrom
void forceRecycleAll(java.lang.Iterable<java.util.UUID>);
descriptor: (Ljava/lang/Iterable;)V
flags: (0x0000)
Code:
stack=4, locals=9, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.activeSegments:Ljava/util/concurrent/ConcurrentLinkedQueue;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 2
start local 2 1: aload 2
aload 2
invokeinterface java.util.List.size:()I
iconst_1
isub
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.apache.cassandra.db.commitlog.CommitLogSegment
astore 3
start local 3 2: aload 0
aload 3
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.advanceAllocatingFrom:(Lorg/apache/cassandra/db/commitlog/CommitLogSegment;)V
3: aload 3
invokevirtual org.apache.cassandra.db.commitlog.CommitLogSegment.waitForModifications:()V
4: getstatic org.apache.cassandra.db.Keyspace.writeOrder:Lorg/apache/cassandra/utils/concurrent/OpOrder;
invokevirtual org.apache.cassandra.utils.concurrent.OpOrder.awaitNewBarrier:()V
5: aload 0
aload 2
iconst_1
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.flushDataFrom:(Ljava/util/List;Z)Ljava/util/concurrent/Future;
astore 4
start local 4 6: aload 4
invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
pop
7: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.activeSegments:Ljava/util/concurrent/ConcurrentLinkedQueue;
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.iterator:()Ljava/util/Iterator;
astore 6
goto 13
StackMap locals: org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager java.lang.Iterable java.util.List org.apache.cassandra.db.commitlog.CommitLogSegment java.util.concurrent.Future top java.util.Iterator
StackMap stack:
8: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.db.commitlog.CommitLogSegment
astore 5
start local 5 9: aload 1
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 8
goto 12
StackMap locals: org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager java.lang.Iterable java.util.List org.apache.cassandra.db.commitlog.CommitLogSegment java.util.concurrent.Future org.apache.cassandra.db.commitlog.CommitLogSegment java.util.Iterator top java.util.Iterator
StackMap stack:
10: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.UUID
astore 7
start local 7 11: aload 5
aload 7
getstatic org.apache.cassandra.db.commitlog.CommitLogPosition.NONE:Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
aload 5
invokevirtual org.apache.cassandra.db.commitlog.CommitLogSegment.getCurrentCommitLogPosition:()Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
invokevirtual org.apache.cassandra.db.commitlog.CommitLogSegment.markClean:(Ljava/util/UUID;Lorg/apache/cassandra/db/commitlog/CommitLogPosition;Lorg/apache/cassandra/db/commitlog/CommitLogPosition;)V
end local 7 12: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
end local 5 13: StackMap locals: org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager java.lang.Iterable java.util.List org.apache.cassandra.db.commitlog.CommitLogSegment java.util.concurrent.Future top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
14: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.activeSegments:Ljava/util/concurrent/ConcurrentLinkedQueue;
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.iterator:()Ljava/util/Iterator;
astore 6
goto 18
StackMap locals:
StackMap stack:
15: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.db.commitlog.CommitLogSegment
astore 5
start local 5 16: aload 5
invokevirtual org.apache.cassandra.db.commitlog.CommitLogSegment.isUnused:()Z
ifeq 18
17: aload 0
aload 5
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.archiveAndDiscard:(Lorg/apache/cassandra/db/commitlog/CommitLogSegment;)V
end local 5 18: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 15
19: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.activeSegments:Ljava/util/concurrent/ConcurrentLinkedQueue;
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.peek:()Ljava/lang/Object;
checkcast org.apache.cassandra.db.commitlog.CommitLogSegment
dup
astore 5
start local 5 20: ifnull 25
aload 5
getfield org.apache.cassandra.db.commitlog.CommitLogSegment.id:J
aload 3
getfield org.apache.cassandra.db.commitlog.CommitLogSegment.id:J
lcmp
ifgt 25
21: getstatic org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.logger:Lorg/slf4j/Logger;
ldc "Failed to force-recycle all segments; at least one segment is still in use with dirty CFs."
invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;)V
end local 5 22: goto 25
23: StackMap locals: org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager java.lang.Iterable java.util.List org.apache.cassandra.db.commitlog.CommitLogSegment java.util.concurrent.Future
StackMap stack: java.lang.Throwable
astore 5
start local 5 24: getstatic org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.logger:Lorg/slf4j/Logger;
ldc "Failed waiting for a forced recycle of in-use commit log segments"
aload 5
invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 5 25: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
0 26 1 droppedCfs Ljava/lang/Iterable<Ljava/util/UUID;>;
1 26 2 segmentsToRecycle Ljava/util/List<Lorg/apache/cassandra/db/commitlog/CommitLogSegment;>;
2 26 3 last Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
6 26 4 future Ljava/util/concurrent/Future<*>;
9 13 5 segment Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
11 12 7 cfId Ljava/util/UUID;
16 18 5 segment Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
20 22 5 first Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
24 25 5 t Ljava/lang/Throwable;
Exception table:
from to target type
6 22 23 Class java.lang.Throwable
Signature: (Ljava/lang/Iterable<Ljava/util/UUID;>;)V
MethodParameters:
Name Flags
droppedCfs
void archiveAndDiscard(org.apache.cassandra.db.commitlog.CommitLogSegment);
descriptor: (Lorg/apache/cassandra/db/commitlog/CommitLogSegment;)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.commitLog:Lorg/apache/cassandra/db/commitlog/CommitLog;
getfield org.apache.cassandra.db.commitlog.CommitLog.archiver:Lorg/apache/cassandra/db/commitlog/CommitLogArchiver;
aload 1
invokevirtual org.apache.cassandra.db.commitlog.CommitLogSegment.getName:()Ljava/lang/String;
invokevirtual org.apache.cassandra.db.commitlog.CommitLogArchiver.maybeWaitForArchiving:(Ljava/lang/String;)Z
istore 2
start local 2 1: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.activeSegments:Ljava/util/concurrent/ConcurrentLinkedQueue;
aload 1
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.remove:(Ljava/lang/Object;)Z
ifne 3
2: return
3: StackMap locals: int
StackMap stack:
getstatic org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.logger:Lorg/slf4j/Logger;
ldc "Segment {} is no longer active and will be deleted {}"
aload 1
iload 2
ifeq 4
ldc "now"
goto 5
StackMap locals: org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager org.apache.cassandra.db.commitlog.CommitLogSegment int
StackMap stack: org.slf4j.Logger java.lang.String org.apache.cassandra.db.commitlog.CommitLogSegment
4: ldc "by the archive script"
StackMap locals: org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager org.apache.cassandra.db.commitlog.CommitLogSegment int
StackMap stack: org.slf4j.Logger java.lang.String org.apache.cassandra.db.commitlog.CommitLogSegment java.lang.String
5: invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
6: aload 0
aload 1
iload 2
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.discard:(Lorg/apache/cassandra/db/commitlog/CommitLogSegment;Z)V
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
0 8 1 segment Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
1 8 2 archiveSuccess Z
MethodParameters:
Name Flags
segment final
void addSize(long);
descriptor: (J)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.size:Ljava/util/concurrent/atomic/AtomicLong;
lload 1
invokevirtual java.util.concurrent.atomic.AtomicLong.addAndGet:(J)J
pop2
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
0 2 1 addedSize J
MethodParameters:
Name Flags
addedSize
public long onDiskSize();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.size:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
private long unusedCapacity();
descriptor: ()J
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=1
start local 0 0: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getTotalCommitlogSpaceInMB:()J
ldc 1024
lmul
ldc 1024
lmul
lstore 1
start local 1 1: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.size:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lstore 3
start local 3 2: getstatic org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.logger:Lorg/slf4j/Logger;
ldc "Total active commitlog segment space used is {} out of {}"
lload 3
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
3: lload 1
lload 3
lsub
lreturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
1 4 1 total J
2 4 3 currentSize J
private java.util.concurrent.Future<?> flushDataFrom(java.util.List<org.apache.cassandra.db.commitlog.CommitLogSegment>, boolean);
descriptor: (Ljava/util/List;Z)Ljava/util/concurrent/Future;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=12, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface java.util.List.isEmpty:()Z
ifeq 2
1: aconst_null
invokestatic com.google.common.util.concurrent.Futures.immediateFuture:(Ljava/lang/Object;)Lcom/google/common/util/concurrent/ListenableFuture;
areturn
2: StackMap locals:
StackMap stack:
aload 1
aload 1
invokeinterface java.util.List.size:()I
iconst_1
isub
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.apache.cassandra.db.commitlog.CommitLogSegment
invokevirtual org.apache.cassandra.db.commitlog.CommitLogSegment.getCurrentCommitLogPosition:()Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
astore 3
start local 3 3: new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
astore 4
start local 4 4: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 20
StackMap locals: org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager java.util.List int org.apache.cassandra.db.commitlog.CommitLogPosition java.util.Map top java.util.Iterator
StackMap stack:
5: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.db.commitlog.CommitLogSegment
astore 5
start local 5 6: aload 5
invokevirtual org.apache.cassandra.db.commitlog.CommitLogSegment.getDirtyCFIDs:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 8
goto 19
StackMap locals: org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager java.util.List int org.apache.cassandra.db.commitlog.CommitLogPosition java.util.Map org.apache.cassandra.db.commitlog.CommitLogSegment java.util.Iterator top java.util.Iterator
StackMap stack:
7: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.UUID
astore 7
start local 7 8: getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
aload 7
invokevirtual org.apache.cassandra.config.Schema.getCF:(Ljava/util/UUID;)Lorg/apache/cassandra/utils/Pair;
astore 9
start local 9 9: aload 9
ifnonnull 13
10: getstatic org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.logger:Lorg/slf4j/Logger;
ldc "Marking clean CF {} that doesn't exist anymore"
aload 7
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
11: aload 5
aload 7
getstatic org.apache.cassandra.db.commitlog.CommitLogPosition.NONE:Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
aload 5
invokevirtual org.apache.cassandra.db.commitlog.CommitLogSegment.getCurrentCommitLogPosition:()Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
invokevirtual org.apache.cassandra.db.commitlog.CommitLogSegment.markClean:(Ljava/util/UUID;Lorg/apache/cassandra/db/commitlog/CommitLogPosition;Lorg/apache/cassandra/db/commitlog/CommitLogPosition;)V
12: goto 19
13: StackMap locals: org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager java.util.List int org.apache.cassandra.db.commitlog.CommitLogPosition java.util.Map org.apache.cassandra.db.commitlog.CommitLogSegment java.util.Iterator java.util.UUID java.util.Iterator org.apache.cassandra.utils.Pair
StackMap stack:
aload 4
aload 7
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 19
14: aload 9
getfield org.apache.cassandra.utils.Pair.left:Ljava/lang/Object;
checkcast java.lang.String
astore 10
start local 10 15: aload 10
invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
aload 7
invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStore:(Ljava/util/UUID;)Lorg/apache/cassandra/db/ColumnFamilyStore;
astore 11
start local 11 16: aload 4
aload 7
iload 2
ifeq 17
aload 11
invokevirtual org.apache.cassandra.db.ColumnFamilyStore.forceFlush:()Lcom/google/common/util/concurrent/ListenableFuture;
goto 18
StackMap locals: org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager java.util.List int org.apache.cassandra.db.commitlog.CommitLogPosition java.util.Map org.apache.cassandra.db.commitlog.CommitLogSegment java.util.Iterator java.util.UUID java.util.Iterator org.apache.cassandra.utils.Pair java.lang.String org.apache.cassandra.db.ColumnFamilyStore
StackMap stack: java.util.Map java.util.UUID
17: aload 11
aload 3
invokevirtual org.apache.cassandra.db.ColumnFamilyStore.forceFlush:(Lorg/apache/cassandra/db/commitlog/CommitLogPosition;)Lcom/google/common/util/concurrent/ListenableFuture;
StackMap locals: org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager java.util.List int org.apache.cassandra.db.commitlog.CommitLogPosition java.util.Map org.apache.cassandra.db.commitlog.CommitLogSegment java.util.Iterator java.util.UUID java.util.Iterator org.apache.cassandra.utils.Pair java.lang.String org.apache.cassandra.db.ColumnFamilyStore
StackMap stack: java.util.Map java.util.UUID com.google.common.util.concurrent.ListenableFuture
18: invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 11 end local 10 end local 9 end local 7 19: StackMap locals: org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager java.util.List int org.apache.cassandra.db.commitlog.CommitLogPosition java.util.Map org.apache.cassandra.db.commitlog.CommitLogSegment java.util.Iterator top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
end local 5 20: StackMap locals: org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager java.util.List int org.apache.cassandra.db.commitlog.CommitLogPosition java.util.Map top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
21: aload 4
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokestatic com.google.common.util.concurrent.Futures.allAsList:(Ljava/lang/Iterable;)Lcom/google/common/util/concurrent/ListenableFuture;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
0 22 1 segments Ljava/util/List<Lorg/apache/cassandra/db/commitlog/CommitLogSegment;>;
0 22 2 force Z
3 22 3 maxCommitLogPosition Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
4 22 4 flushes Ljava/util/Map<Ljava/util/UUID;Lcom/google/common/util/concurrent/ListenableFuture<*>;>;
6 20 5 segment Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
8 19 7 dirtyCFId Ljava/util/UUID;
9 19 9 pair Lorg/apache/cassandra/utils/Pair<Ljava/lang/String;Ljava/lang/String;>;
15 19 10 keyspace Ljava/lang/String;
16 19 11 cfs Lorg/apache/cassandra/db/ColumnFamilyStore;
Signature: (Ljava/util/List<Lorg/apache/cassandra/db/commitlog/CommitLogSegment;>;Z)Ljava/util/concurrent/Future<*>;
MethodParameters:
Name Flags
segments
force
public void stopUnsafe(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: getstatic org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.logger:Lorg/slf4j/Logger;
ldc "CLSM closing and clearing existing commit log segments..."
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;)V
1: aload 0
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.shutdown:()V
2: aload 0
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.awaitTermination:()V
3: goto 6
4: StackMap locals:
StackMap stack: java.lang.InterruptedException
astore 2
start local 2 5: new java.lang.RuntimeException
dup
aload 2
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 6: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.activeSegments:Ljava/util/concurrent/ConcurrentLinkedQueue;
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.iterator:()Ljava/util/Iterator;
astore 3
goto 9
StackMap locals: org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager int top java.util.Iterator
StackMap stack:
7: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.db.commitlog.CommitLogSegment
astore 2
start local 2 8: aload 0
aload 2
iload 1
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.closeAndDeleteSegmentUnsafe:(Lorg/apache/cassandra/db/commitlog/CommitLogSegment;Z)V
end local 2 9: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
10: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.activeSegments:Ljava/util/concurrent/ConcurrentLinkedQueue;
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.clear:()V
11: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.size:Ljava/util/concurrent/atomic/AtomicLong;
lconst_0
invokevirtual java.util.concurrent.atomic.AtomicLong.set:(J)V
12: getstatic org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.logger:Lorg/slf4j/Logger;
ldc "CLSM done with closing and clearing existing commit log segments."
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;)V
13: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
0 14 1 deleteSegments Z
5 6 2 e Ljava/lang/InterruptedException;
8 9 2 segment Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
Exception table:
from to target type
2 3 4 Class java.lang.InterruptedException
MethodParameters:
Name Flags
deleteSegments
void awaitManagementTasksCompletion();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.availableSegment:Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
ifnonnull 2
aload 0
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.atSegmentBufferLimit:()Z
ifne 2
1: aload 0
aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.allocatingFrom:Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.awaitAvailableSegment:(Lorg/apache/cassandra/db/commitlog/CommitLogSegment;)V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
private void closeAndDeleteSegmentUnsafe(org.apache.cassandra.db.commitlog.CommitLogSegment, boolean);
descriptor: (Lorg/apache/cassandra/db/commitlog/CommitLogSegment;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iload 2
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.discard:(Lorg/apache/cassandra/db/commitlog/CommitLogSegment;Z)V
1: goto 3
2: StackMap locals:
StackMap stack: java.lang.AssertionError
pop
3: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
0 4 1 segment Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
0 4 2 delete Z
Exception table:
from to target type
0 1 2 Class java.lang.AssertionError
MethodParameters:
Name Flags
segment
delete
public void shutdown();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.$assertionsDisabled:Z
ifne 1
aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.shutdown:Z
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.shutdown:Z
2: aload 0
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.discardAvailableSegment:()V
3: aload 0
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.wakeManager:()V
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
private void discardAvailableSegment();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: aload 0
dup
astore 2
monitorenter
2: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.availableSegment:Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
astore 1
3: aload 0
aconst_null
putfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.availableSegment:Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
4: aload 2
monitorexit
5: goto 8
StackMap locals: org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager org.apache.cassandra.db.commitlog.CommitLogSegment org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager
StackMap stack: java.lang.Throwable
6: aload 2
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
aload 1
ifnull 10
9: aload 1
iconst_1
invokevirtual org.apache.cassandra.db.commitlog.CommitLogSegment.discard:(Z)V
10: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
1 11 1 next Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
Exception table:
from to target type
2 5 6 any
6 7 6 any
public void awaitTermination();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.managerThread:Ljava/lang/Thread;
invokevirtual java.lang.Thread.join:()V
1: aload 0
aconst_null
putfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.managerThread:Ljava/lang/Thread;
2: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.activeSegments:Ljava/util/concurrent/ConcurrentLinkedQueue;
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.iterator:()Ljava/util/Iterator;
astore 2
goto 5
StackMap locals: org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager top java.util.Iterator
StackMap stack:
3: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.db.commitlog.CommitLogSegment
astore 1
start local 1 4: aload 1
invokevirtual org.apache.cassandra.db.commitlog.CommitLogSegment.close:()V
end local 1 5: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
6: getstatic org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.bufferPool:Lorg/apache/cassandra/db/commitlog/SimpleCachedBufferPool;
invokevirtual org.apache.cassandra.db.commitlog.SimpleCachedBufferPool.shutdown:()V
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
4 5 1 segment Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
Exceptions:
throws java.lang.InterruptedException
public java.util.Collection<org.apache.cassandra.db.commitlog.CommitLogSegment> getActiveSegments();
descriptor: ()Ljava/util/Collection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.activeSegments:Ljava/util/concurrent/ConcurrentLinkedQueue;
invokestatic java.util.Collections.unmodifiableCollection:(Ljava/util/Collection;)Ljava/util/Collection;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
Signature: ()Ljava/util/Collection<Lorg/apache/cassandra/db/commitlog/CommitLogSegment;>;
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
com.google.common.annotations.VisibleForTesting()
org.apache.cassandra.db.commitlog.CommitLogPosition getCurrentPosition();
descriptor: ()Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.allocatingFrom:Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
invokevirtual org.apache.cassandra.db.commitlog.CommitLogSegment.getCurrentCommitLogPosition:()Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
public void sync(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.allocatingFrom:Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
astore 2
start local 2 1: aload 0
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.getActiveSegments:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 6
StackMap locals: org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager int org.apache.cassandra.db.commitlog.CommitLogSegment top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.db.commitlog.CommitLogSegment
astore 3
start local 3 3: aload 3
getfield org.apache.cassandra.db.commitlog.CommitLogSegment.id:J
aload 2
getfield org.apache.cassandra.db.commitlog.CommitLogSegment.id:J
lcmp
ifle 5
4: return
5: StackMap locals: org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager int org.apache.cassandra.db.commitlog.CommitLogSegment org.apache.cassandra.db.commitlog.CommitLogSegment java.util.Iterator
StackMap stack:
aload 3
iload 1
invokevirtual org.apache.cassandra.db.commitlog.CommitLogSegment.sync:(Z)V
end local 3 6: StackMap locals: org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager int org.apache.cassandra.db.commitlog.CommitLogSegment top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
0 8 1 flush Z
1 8 2 current Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
3 6 3 segment Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
flush
org.apache.cassandra.db.commitlog.SimpleCachedBufferPool getBufferPool();
descriptor: ()Lorg/apache/cassandra/db/commitlog/SimpleCachedBufferPool;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.bufferPool:Lorg/apache/cassandra/db/commitlog/SimpleCachedBufferPool;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
void wakeManager();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.managerThreadWaitQueue:Lorg/apache/cassandra/utils/concurrent/WaitQueue;
invokevirtual org.apache.cassandra.utils.concurrent.WaitQueue.signalAll:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
void notifyBufferFreed();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.wakeManager:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
org.apache.cassandra.db.commitlog.CommitLogSegment allocatingFrom();
descriptor: ()Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.allocatingFrom:Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
private boolean lambda$0();
descriptor: ()Z
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.availableSegment:Lorg/apache/cassandra/db/commitlog/CommitLogSegment;
ifnonnull 1
aload 0
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.atSegmentBufferLimit:()Z
ifeq 2
StackMap locals:
StackMap stack:
1: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.shutdown:Z
ifne 2
iconst_0
goto 3
StackMap locals:
StackMap stack:
2: iconst_1
StackMap locals:
StackMap stack: int
3: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
}
SourceFile: "AbstractCommitLogSegmentManager.java"
NestMembers:
org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager$1
InnerClasses:
public Context = com.codahale.metrics.Timer$Context of com.codahale.metrics.Timer
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager$1
protected Allocation = org.apache.cassandra.db.commitlog.CommitLogSegment$Allocation of org.apache.cassandra.db.commitlog.CommitLogSegment
public abstract Signal = org.apache.cassandra.utils.concurrent.WaitQueue$Signal of org.apache.cassandra.utils.concurrent.WaitQueue