public abstract class org.apache.cassandra.db.commitlog.AbstractCommitLogService
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.apache.cassandra.db.commitlog.AbstractCommitLogService
super_class: java.lang.Object
{
static final long DEFAULT_MARKER_INTERVAL_MILLIS;
descriptor: J
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 100
private volatile java.lang.Thread thread;
descriptor: Ljava/lang/Thread;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean shutdown;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
protected volatile long lastSyncedAt;
descriptor: J
flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE
private final java.util.concurrent.atomic.AtomicLong written;
descriptor: Ljava/util/concurrent/atomic/AtomicLong;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
protected final java.util.concurrent.atomic.AtomicLong pending;
descriptor: Ljava/util/concurrent/atomic/AtomicLong;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final org.apache.cassandra.utils.concurrent.WaitQueue syncComplete;
descriptor: Lorg/apache/cassandra/utils/concurrent/WaitQueue;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
final org.apache.cassandra.db.commitlog.CommitLog commitLog;
descriptor: Lorg/apache/cassandra/db/commitlog/CommitLog;
flags: (0x0010) ACC_FINAL
private final java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final long syncIntervalNanos;
descriptor: J
flags: (0x0010) ACC_FINAL
final long markerIntervalNanos;
descriptor: J
flags: (0x0010) ACC_FINAL
private volatile boolean syncRequested;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private static final org.slf4j.Logger logger;
descriptor: Lorg/slf4j/Logger;
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=1, locals=0, args_size=0
0: ldc Lorg/apache/cassandra/db/commitlog/AbstractCommitLogService;
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.AbstractCommitLogService.$assertionsDisabled:Z
3: ldc Lorg/apache/cassandra/db/commitlog/AbstractCommitLogService;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic org.apache.cassandra.db.commitlog.AbstractCommitLogService.logger:Lorg/slf4j/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(org.apache.cassandra.db.commitlog.CommitLog, java.lang.String, long);
descriptor: (Lorg/apache/cassandra/db/commitlog/CommitLog;Ljava/lang/String;J)V
flags: (0x0000)
Code:
stack=6, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
lload 3
iconst_0
invokespecial org.apache.cassandra.db.commitlog.AbstractCommitLogService.<init>:(Lorg/apache/cassandra/db/commitlog/CommitLog;Ljava/lang/String;JZ)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogService;
0 2 1 commitLog Lorg/apache/cassandra/db/commitlog/CommitLog;
0 2 2 name Ljava/lang/String;
0 2 3 syncIntervalMillis J
MethodParameters:
Name Flags
commitLog final
name final
syncIntervalMillis
void <init>(org.apache.cassandra.db.commitlog.CommitLog, java.lang.String, long, boolean);
descriptor: (Lorg/apache/cassandra/db/commitlog/CommitLog;Ljava/lang/String;JZ)V
flags: (0x0000)
Code:
stack=6, locals=10, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 5 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield org.apache.cassandra.db.commitlog.AbstractCommitLogService.shutdown:Z
2: aload 0
invokestatic java.lang.System.currentTimeMillis:()J
putfield org.apache.cassandra.db.commitlog.AbstractCommitLogService.lastSyncedAt:J
3: aload 0
new java.util.concurrent.atomic.AtomicLong
dup
lconst_0
invokespecial java.util.concurrent.atomic.AtomicLong.<init>:(J)V
putfield org.apache.cassandra.db.commitlog.AbstractCommitLogService.written:Ljava/util/concurrent/atomic/AtomicLong;
4: aload 0
new java.util.concurrent.atomic.AtomicLong
dup
lconst_0
invokespecial java.util.concurrent.atomic.AtomicLong.<init>:(J)V
putfield org.apache.cassandra.db.commitlog.AbstractCommitLogService.pending:Ljava/util/concurrent/atomic/AtomicLong;
5: 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.AbstractCommitLogService.syncComplete:Lorg/apache/cassandra/utils/concurrent/WaitQueue;
6: aload 0
aload 1
putfield org.apache.cassandra.db.commitlog.AbstractCommitLogService.commitLog:Lorg/apache/cassandra/db/commitlog/CommitLog;
7: aload 0
aload 2
putfield org.apache.cassandra.db.commitlog.AbstractCommitLogService.name:Ljava/lang/String;
8: iload 5
ifeq 17
lload 3
ldc 100
lcmp
ifle 17
9: ldc 100
lstore 6
start local 6 10: lload 3
lload 6
lrem
lstore 8
start local 8 11: lload 8
lconst_0
lcmp
ifeq 15
12: lload 3
lload 8
lsub
lstore 3
13: lload 8
lload 6
ldc 2
ldiv
lcmp
iflt 15
14: lload 3
lload 6
ladd
lstore 3
15: StackMap locals: org.apache.cassandra.db.commitlog.AbstractCommitLogService org.apache.cassandra.db.commitlog.CommitLog java.lang.String long int long long
StackMap stack:
getstatic org.apache.cassandra.db.commitlog.AbstractCommitLogService.logger:Lorg/slf4j/Logger;
ldc "Will update the commitlog markers every {}ms and flush every {}ms"
lload 6
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
lload 3
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
end local 8 16: goto 18
end local 6 17: StackMap locals:
StackMap stack:
lload 3
lstore 6
start local 6 18: StackMap locals: long
StackMap stack:
getstatic org.apache.cassandra.db.commitlog.AbstractCommitLogService.$assertionsDisabled:Z
ifne 19
lload 3
lload 6
lrem
lconst_0
lcmp
ifeq 19
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
19: StackMap locals:
StackMap stack:
aload 0
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
lload 6
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual java.util.concurrent.TimeUnit.convert:(JLjava/util/concurrent/TimeUnit;)J
putfield org.apache.cassandra.db.commitlog.AbstractCommitLogService.markerIntervalNanos:J
20: aload 0
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
lload 3
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual java.util.concurrent.TimeUnit.convert:(JLjava/util/concurrent/TimeUnit;)J
putfield org.apache.cassandra.db.commitlog.AbstractCommitLogService.syncIntervalNanos:J
21: return
end local 6 end local 5 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/AbstractCommitLogService;
0 22 1 commitLog Lorg/apache/cassandra/db/commitlog/CommitLog;
0 22 2 name Ljava/lang/String;
0 22 3 syncIntervalMillis J
0 22 5 markHeadersFaster Z
10 17 6 markerIntervalMillis J
18 22 6 markerIntervalMillis J
11 16 8 modulo J
MethodParameters:
Name Flags
commitLog final
name final
syncIntervalMillis
markHeadersFaster
void start();
descriptor: ()V
flags: (0x0000)
Code:
stack=10, locals=2, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogService.syncIntervalNanos:J
lconst_1
lcmp
ifge 4
1: new java.lang.IllegalArgumentException
dup
ldc "Commit log flush interval must be positive: %fms"
iconst_1
anewarray java.lang.Object
dup
iconst_0
2: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogService.syncIntervalNanos:J
l2d
ldc 1.0E-6
dmul
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
3: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield org.apache.cassandra.db.commitlog.AbstractCommitLogService.shutdown:Z
5: new org.apache.cassandra.db.commitlog.AbstractCommitLogService$SyncRunnable
dup
aload 0
new org.apache.cassandra.utils.Clock
dup
invokespecial org.apache.cassandra.utils.Clock.<init>:()V
invokespecial org.apache.cassandra.db.commitlog.AbstractCommitLogService$SyncRunnable.<init>:(Lorg/apache/cassandra/db/commitlog/AbstractCommitLogService;Lorg/apache/cassandra/utils/Clock;)V
astore 1
start local 1 6: aload 0
aload 1
aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogService.name:Ljava/lang/String;
invokestatic org.apache.cassandra.concurrent.NamedThreadFactory.createThread:(Ljava/lang/Runnable;Ljava/lang/String;)Ljava/lang/Thread;
putfield org.apache.cassandra.db.commitlog.AbstractCommitLogService.thread:Ljava/lang/Thread;
7: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogService.thread:Ljava/lang/Thread;
invokevirtual java.lang.Thread.start:()V
8: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogService;
6 9 1 runnable Ljava/lang/Runnable;
public void finishWriteFor(org.apache.cassandra.db.commitlog.CommitLogSegment$Allocation);
descriptor: (Lorg/apache/cassandra/db/commitlog/CommitLogSegment$Allocation;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogService.maybeWaitForSync:(Lorg/apache/cassandra/db/commitlog/CommitLogSegment$Allocation;)V
1: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogService.written:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
pop2
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogService;
0 3 1 alloc Lorg/apache/cassandra/db/commitlog/CommitLogSegment$Allocation;
MethodParameters:
Name Flags
alloc
protected abstract void maybeWaitForSync(org.apache.cassandra.db.commitlog.CommitLogSegment$Allocation);
descriptor: (Lorg/apache/cassandra/db/commitlog/CommitLogSegment$Allocation;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
alloc
void requestExtraSync();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield org.apache.cassandra.db.commitlog.AbstractCommitLogService.syncRequested:Z
1: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogService.thread:Ljava/lang/Thread;
invokestatic java.util.concurrent.locks.LockSupport.unpark:(Ljava/lang/Thread;)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogService;
public void shutdown();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield org.apache.cassandra.db.commitlog.AbstractCommitLogService.shutdown:Z
1: aload 0
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogService.requestExtraSync:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogService;
public void syncBlocking();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: invokestatic java.lang.System.nanoTime:()J
lstore 1
start local 1 1: aload 0
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogService.requestExtraSync:()V
2: aload 0
lload 1
aconst_null
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogService.awaitSyncAt:(JLcom/codahale/metrics/Timer$Context;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogService;
1 4 1 requestTime J
void awaitSyncAt(long, com.codahale.metrics.Timer$Context);
descriptor: (JLcom/codahale/metrics/Timer$Context;)V
flags: (0x0000)
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 3 0: StackMap locals:
StackMap stack:
aload 3
ifnull 1
aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogService.syncComplete:Lorg/apache/cassandra/utils/concurrent/WaitQueue;
aload 3
invokevirtual org.apache.cassandra.utils.concurrent.WaitQueue.register:(Lcom/codahale/metrics/Timer$Context;)Lorg/apache/cassandra/utils/concurrent/WaitQueue$Signal;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogService.syncComplete:Lorg/apache/cassandra/utils/concurrent/WaitQueue;
invokevirtual org.apache.cassandra.utils.concurrent.WaitQueue.register:()Lorg/apache/cassandra/utils/concurrent/WaitQueue$Signal;
StackMap locals:
StackMap stack: org.apache.cassandra.utils.concurrent.WaitQueue$Signal
2: astore 4
start local 4 3: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogService.lastSyncedAt:J
lload 1
lcmp
ifge 5
4: aload 4
invokeinterface org.apache.cassandra.utils.concurrent.WaitQueue$Signal.awaitUninterruptibly:()V
goto 6
5: StackMap locals: org.apache.cassandra.utils.concurrent.WaitQueue$Signal
StackMap stack:
aload 4
invokeinterface org.apache.cassandra.utils.concurrent.WaitQueue$Signal.cancel:()V
end local 4 6: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogService.lastSyncedAt:J
lload 1
7: lcmp
iflt 0
8: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogService;
0 9 1 syncTime J
0 9 3 context Lcom/codahale/metrics/Timer$Context;
3 6 4 signal Lorg/apache/cassandra/utils/concurrent/WaitQueue$Signal;
MethodParameters:
Name Flags
syncTime
context
public void awaitTermination();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.db.commitlog.AbstractCommitLogService.thread:Ljava/lang/Thread;
invokevirtual java.lang.Thread.join:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/db/commitlog/AbstractCommitLogService;
Exceptions:
throws java.lang.InterruptedException
public long getCompletedTasks();
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.AbstractCommitLogService.written: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/AbstractCommitLogService;
public long getPendingTasks();
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.AbstractCommitLogService.pending: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/AbstractCommitLogService;
}
SourceFile: "AbstractCommitLogService.java"
NestMembers:
org.apache.cassandra.db.commitlog.AbstractCommitLogService$SyncRunnable
InnerClasses:
public Context = com.codahale.metrics.Timer$Context of com.codahale.metrics.Timer
SyncRunnable = org.apache.cassandra.db.commitlog.AbstractCommitLogService$SyncRunnable of org.apache.cassandra.db.commitlog.AbstractCommitLogService
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