public class org.apache.cassandra.db.commitlog.CommitLogReplayer implements org.apache.cassandra.db.commitlog.CommitLogReadHandler
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.db.commitlog.CommitLogReplayer
super_class: java.lang.Object
{
public static long MAX_OUTSTANDING_REPLAY_BYTES;
descriptor: J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
public static org.apache.cassandra.db.commitlog.CommitLogReplayer$MutationInitiator mutationInitiator;
descriptor: Lorg/apache/cassandra/db/commitlog/CommitLogReplayer$MutationInitiator;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
static final java.lang.String IGNORE_REPLAY_ERRORS_PROPERTY;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "cassandra.commitlog.ignorereplayerrors"
private static final org.slf4j.Logger logger;
descriptor: Lorg/slf4j/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int MAX_OUTSTANDING_REPLAY_COUNT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.util.Set<org.apache.cassandra.db.Keyspace> keyspacesReplayed;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Lorg/apache/cassandra/db/Keyspace;>;
private final java.util.Queue<java.util.concurrent.Future<java.lang.Integer>> futures;
descriptor: Ljava/util/Queue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Queue<Ljava/util/concurrent/Future<Ljava/lang/Integer;>;>;
private final java.util.concurrent.atomic.AtomicInteger replayedCount;
descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Map<java.util.UUID, org.apache.cassandra.db.commitlog.IntervalSet<org.apache.cassandra.db.commitlog.CommitLogPosition>> cfPersisted;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/util/UUID;Lorg/apache/cassandra/db/commitlog/IntervalSet<Lorg/apache/cassandra/db/commitlog/CommitLogPosition;>;>;
private final org.apache.cassandra.db.commitlog.CommitLogPosition globalPosition;
descriptor: Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private long pendingMutationBytes;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private final org.apache.cassandra.db.commitlog.CommitLogReplayer$ReplayFilter replayFilter;
descriptor: Lorg/apache/cassandra/db/commitlog/CommitLogReplayer$ReplayFilter;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.cassandra.db.commitlog.CommitLogArchiver archiver;
descriptor: Lorg/apache/cassandra/db/commitlog/CommitLogArchiver;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
protected org.apache.cassandra.db.commitlog.CommitLogReader commitLogReader;
descriptor: Lorg/apache/cassandra/db/commitlog/CommitLogReader;
flags: (0x0004) ACC_PROTECTED
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: ldc "cassandra.commitlog_max_outstanding_replay_bytes"
ldc 67108864
invokestatic java.lang.Long.getLong:(Ljava/lang/String;J)Ljava/lang/Long;
invokevirtual java.lang.Long.longValue:()J
putstatic org.apache.cassandra.db.commitlog.CommitLogReplayer.MAX_OUTSTANDING_REPLAY_BYTES:J
1: new org.apache.cassandra.db.commitlog.CommitLogReplayer$MutationInitiator
dup
invokespecial org.apache.cassandra.db.commitlog.CommitLogReplayer$MutationInitiator.<init>:()V
putstatic org.apache.cassandra.db.commitlog.CommitLogReplayer.mutationInitiator:Lorg/apache/cassandra/db/commitlog/CommitLogReplayer$MutationInitiator;
2: ldc Lorg/apache/cassandra/db/commitlog/CommitLogReplayer;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic org.apache.cassandra.db.commitlog.CommitLogReplayer.logger:Lorg/slf4j/Logger;
3: ldc "cassandra.commitlog_max_outstanding_replay_count"
sipush 1024
invokestatic java.lang.Integer.getInteger:(Ljava/lang/String;I)Ljava/lang/Integer;
invokevirtual java.lang.Integer.intValue:()I
putstatic org.apache.cassandra.db.commitlog.CommitLogReplayer.MAX_OUTSTANDING_REPLAY_COUNT:I
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(org.apache.cassandra.db.commitlog.CommitLog, org.apache.cassandra.db.commitlog.CommitLogPosition, java.util.Map<java.util.UUID, org.apache.cassandra.db.commitlog.IntervalSet<org.apache.cassandra.db.commitlog.CommitLogPosition>>, org.apache.cassandra.db.commitlog.CommitLogReplayer$ReplayFilter);
descriptor: (Lorg/apache/cassandra/db/commitlog/CommitLog;Lorg/apache/cassandra/db/commitlog/CommitLogPosition;Ljava/util/Map;Lorg/apache/cassandra/db/commitlog/CommitLogReplayer$ReplayFilter;)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
lconst_0
putfield org.apache.cassandra.db.commitlog.CommitLogReplayer.pendingMutationBytes:J
2: aload 0
new org.cliffc.high_scale_lib.NonBlockingHashSet
dup
invokespecial org.cliffc.high_scale_lib.NonBlockingHashSet.<init>:()V
putfield org.apache.cassandra.db.commitlog.CommitLogReplayer.keyspacesReplayed:Ljava/util/Set;
3: aload 0
new java.util.ArrayDeque
dup
invokespecial java.util.ArrayDeque.<init>:()V
putfield org.apache.cassandra.db.commitlog.CommitLogReplayer.futures:Ljava/util/Queue;
4: aload 0
new java.util.concurrent.atomic.AtomicInteger
dup
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:()V
putfield org.apache.cassandra.db.commitlog.CommitLogReplayer.replayedCount:Ljava/util/concurrent/atomic/AtomicInteger;
5: aload 0
aload 3
putfield org.apache.cassandra.db.commitlog.CommitLogReplayer.cfPersisted:Ljava/util/Map;
6: aload 0
aload 2
putfield org.apache.cassandra.db.commitlog.CommitLogReplayer.globalPosition:Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
7: aload 0
aload 4
putfield org.apache.cassandra.db.commitlog.CommitLogReplayer.replayFilter:Lorg/apache/cassandra/db/commitlog/CommitLogReplayer$ReplayFilter;
8: aload 0
aload 1
getfield org.apache.cassandra.db.commitlog.CommitLog.archiver:Lorg/apache/cassandra/db/commitlog/CommitLogArchiver;
putfield org.apache.cassandra.db.commitlog.CommitLogReplayer.archiver:Lorg/apache/cassandra/db/commitlog/CommitLogArchiver;
9: aload 0
new org.apache.cassandra.db.commitlog.CommitLogReader
dup
invokespecial org.apache.cassandra.db.commitlog.CommitLogReader.<init>:()V
putfield org.apache.cassandra.db.commitlog.CommitLogReplayer.commitLogReader:Lorg/apache/cassandra/db/commitlog/CommitLogReader;
10: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/cassandra/db/commitlog/CommitLogReplayer;
0 11 1 commitLog Lorg/apache/cassandra/db/commitlog/CommitLog;
0 11 2 globalPosition Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
0 11 3 cfPersisted Ljava/util/Map<Ljava/util/UUID;Lorg/apache/cassandra/db/commitlog/IntervalSet<Lorg/apache/cassandra/db/commitlog/CommitLogPosition;>;>;
0 11 4 replayFilter Lorg/apache/cassandra/db/commitlog/CommitLogReplayer$ReplayFilter;
Signature: (Lorg/apache/cassandra/db/commitlog/CommitLog;Lorg/apache/cassandra/db/commitlog/CommitLogPosition;Ljava/util/Map<Ljava/util/UUID;Lorg/apache/cassandra/db/commitlog/IntervalSet<Lorg/apache/cassandra/db/commitlog/CommitLogPosition;>;>;Lorg/apache/cassandra/db/commitlog/CommitLogReplayer$ReplayFilter;)V
MethodParameters:
Name Flags
commitLog
globalPosition
cfPersisted
replayFilter
public static org.apache.cassandra.db.commitlog.CommitLogReplayer construct(org.apache.cassandra.db.commitlog.CommitLog);
descriptor: (Lorg/apache/cassandra/db/commitlog/CommitLog;)Lorg/apache/cassandra/db/commitlog/CommitLogReplayer;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=10, args_size=1
start local 0 0: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 1
start local 1 1: invokestatic org.apache.cassandra.db.commitlog.CommitLogReplayer$ReplayFilter.create:()Lorg/apache/cassandra/db/commitlog/CommitLogReplayer$ReplayFilter;
astore 2
start local 2 2: invokestatic org.apache.cassandra.db.ColumnFamilyStore.all:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 4
goto 18
StackMap locals: org.apache.cassandra.db.commitlog.CommitLog java.util.Map org.apache.cassandra.db.commitlog.CommitLogReplayer$ReplayFilter top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.db.ColumnFamilyStore
astore 3
start local 3 4: aload 3
getfield org.apache.cassandra.db.ColumnFamilyStore.metadata:Lorg/apache/cassandra/config/CFMetaData;
getfield org.apache.cassandra.config.CFMetaData.cfId:Ljava/util/UUID;
invokestatic org.apache.cassandra.db.SystemKeyspace.getTruncatedPosition:(Ljava/util/UUID;)Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
astore 5
start local 5 5: aload 5
ifnull 16
6: aload 0
getfield org.apache.cassandra.db.commitlog.CommitLog.archiver:Lorg/apache/cassandra/db/commitlog/CommitLogArchiver;
getfield org.apache.cassandra.db.commitlog.CommitLogArchiver.restorePointInTime:J
lstore 6
start local 6 7: aload 3
getfield org.apache.cassandra.db.ColumnFamilyStore.metadata:Lorg/apache/cassandra/config/CFMetaData;
getfield org.apache.cassandra.config.CFMetaData.cfId:Ljava/util/UUID;
invokestatic org.apache.cassandra.db.SystemKeyspace.getTruncatedAt:(Ljava/util/UUID;)J
lstore 8
start local 8 8: lload 8
lload 6
lcmp
ifle 16
9: aload 2
aload 3
getfield org.apache.cassandra.db.ColumnFamilyStore.metadata:Lorg/apache/cassandra/config/CFMetaData;
invokevirtual org.apache.cassandra.db.commitlog.CommitLogReplayer$ReplayFilter.includes:(Lorg/apache/cassandra/config/CFMetaData;)Z
ifeq 16
10: getstatic org.apache.cassandra.db.commitlog.CommitLogReplayer.logger:Lorg/slf4j/Logger;
ldc "Restore point in time is before latest truncation of table {}.{}. Clearing truncation record."
11: aload 3
getfield org.apache.cassandra.db.ColumnFamilyStore.metadata:Lorg/apache/cassandra/config/CFMetaData;
getfield org.apache.cassandra.config.CFMetaData.ksName:Ljava/lang/String;
12: aload 3
getfield org.apache.cassandra.db.ColumnFamilyStore.metadata:Lorg/apache/cassandra/config/CFMetaData;
getfield org.apache.cassandra.config.CFMetaData.cfName:Ljava/lang/String;
13: invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
14: aload 3
getfield org.apache.cassandra.db.ColumnFamilyStore.metadata:Lorg/apache/cassandra/config/CFMetaData;
getfield org.apache.cassandra.config.CFMetaData.cfId:Ljava/util/UUID;
invokestatic org.apache.cassandra.db.SystemKeyspace.removeTruncationRecord:(Ljava/util/UUID;)V
15: aconst_null
astore 5
end local 8 end local 6 16: StackMap locals: org.apache.cassandra.db.commitlog.CommitLog java.util.Map org.apache.cassandra.db.commitlog.CommitLogReplayer$ReplayFilter org.apache.cassandra.db.ColumnFamilyStore java.util.Iterator org.apache.cassandra.db.commitlog.CommitLogPosition
StackMap stack:
aload 3
invokevirtual org.apache.cassandra.db.ColumnFamilyStore.getLiveSSTables:()Ljava/util/Set;
aload 5
invokestatic org.apache.cassandra.db.commitlog.CommitLogReplayer.persistedIntervals:(Ljava/lang/Iterable;Lorg/apache/cassandra/db/commitlog/CommitLogPosition;)Lorg/apache/cassandra/db/commitlog/IntervalSet;
astore 6
start local 6 17: aload 1
aload 3
getfield org.apache.cassandra.db.ColumnFamilyStore.metadata:Lorg/apache/cassandra/config/CFMetaData;
getfield org.apache.cassandra.config.CFMetaData.cfId:Ljava/util/UUID;
aload 6
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 6 end local 5 end local 3 18: StackMap locals: org.apache.cassandra.db.commitlog.CommitLog java.util.Map org.apache.cassandra.db.commitlog.CommitLogReplayer$ReplayFilter top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
19: aload 1
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokestatic org.apache.cassandra.db.commitlog.CommitLogReplayer.firstNotCovered:(Ljava/util/Collection;)Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
astore 3
start local 3 20: getstatic org.apache.cassandra.db.commitlog.CommitLogReplayer.logger:Lorg/slf4j/Logger;
ldc "Global replay position is {} from columnfamilies {}"
aload 3
aload 1
invokestatic org.apache.cassandra.utils.FBUtilities.toString:(Ljava/util/Map;)Ljava/lang/String;
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
21: new org.apache.cassandra.db.commitlog.CommitLogReplayer
dup
aload 0
aload 3
aload 1
aload 2
invokespecial org.apache.cassandra.db.commitlog.CommitLogReplayer.<init>:(Lorg/apache/cassandra/db/commitlog/CommitLog;Lorg/apache/cassandra/db/commitlog/CommitLogPosition;Ljava/util/Map;Lorg/apache/cassandra/db/commitlog/CommitLogReplayer$ReplayFilter;)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 commitLog Lorg/apache/cassandra/db/commitlog/CommitLog;
1 22 1 cfPersisted Ljava/util/Map<Ljava/util/UUID;Lorg/apache/cassandra/db/commitlog/IntervalSet<Lorg/apache/cassandra/db/commitlog/CommitLogPosition;>;>;
2 22 2 replayFilter Lorg/apache/cassandra/db/commitlog/CommitLogReplayer$ReplayFilter;
4 18 3 cfs Lorg/apache/cassandra/db/ColumnFamilyStore;
5 18 5 truncatedAt Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
7 16 6 restoreTime J
8 16 8 truncatedTime J
17 18 6 filter Lorg/apache/cassandra/db/commitlog/IntervalSet<Lorg/apache/cassandra/db/commitlog/CommitLogPosition;>;
20 22 3 globalPosition Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
MethodParameters:
Name Flags
commitLog
public void replayPath(java.io.File, boolean);
descriptor: (Ljava/io/File;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.apache.cassandra.db.commitlog.CommitLogReplayer.commitLogReader:Lorg/apache/cassandra/db/commitlog/CommitLogReader;
aload 0
aload 1
aload 0
getfield org.apache.cassandra.db.commitlog.CommitLogReplayer.globalPosition:Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
iconst_m1
iload 2
invokevirtual org.apache.cassandra.db.commitlog.CommitLogReader.readCommitLogSegment:(Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler;Ljava/io/File;Lorg/apache/cassandra/db/commitlog/CommitLogPosition;IZ)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/db/commitlog/CommitLogReplayer;
0 2 1 file Ljava/io/File;
0 2 2 tolerateTruncation Z
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
file
tolerateTruncation
public void replayFiles(java.io.File[]);
descriptor: ([Ljava/io/File;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.db.commitlog.CommitLogReplayer.commitLogReader:Lorg/apache/cassandra/db/commitlog/CommitLogReader;
aload 0
aload 1
aload 0
getfield org.apache.cassandra.db.commitlog.CommitLogReplayer.globalPosition:Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
invokevirtual org.apache.cassandra.db.commitlog.CommitLogReader.readAllFiles:(Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler;[Ljava/io/File;Lorg/apache/cassandra/db/commitlog/CommitLogPosition;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/db/commitlog/CommitLogReplayer;
0 2 1 clogs [Ljava/io/File;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
clogs
public int blockForWrites();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.db.commitlog.CommitLogReplayer.commitLogReader:Lorg/apache/cassandra/db/commitlog/CommitLogReader;
invokevirtual org.apache.cassandra.db.commitlog.CommitLogReader.getInvalidMutations:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 2
goto 3
StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReplayer top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 1
start local 1 2: getstatic org.apache.cassandra.db.commitlog.CommitLogReplayer.logger:Lorg/slf4j/Logger;
ldc "Skipped {} mutations from unknown (probably removed) CF with id {}"
aload 1
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
aload 1
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
end local 1 3: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: aload 0
getfield org.apache.cassandra.db.commitlog.CommitLogReplayer.futures:Ljava/util/Queue;
invokestatic org.apache.cassandra.utils.FBUtilities.waitOnFutures:(Ljava/lang/Iterable;)Ljava/util/List;
pop
5: getstatic org.apache.cassandra.db.commitlog.CommitLogReplayer.logger:Lorg/slf4j/Logger;
ldc "Finished waiting on mutations from recovery"
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;)V
6: aload 0
getfield org.apache.cassandra.db.commitlog.CommitLogReplayer.futures:Ljava/util/Queue;
invokeinterface java.util.Queue.clear:()V
7: iconst_0
istore 1
start local 1 8: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 9: aload 0
getfield org.apache.cassandra.db.commitlog.CommitLogReplayer.keyspacesReplayed:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 14
StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReplayer int java.util.List top java.util.Iterator
StackMap stack:
10: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.db.Keyspace
astore 3
start local 3 11: aload 3
invokevirtual org.apache.cassandra.db.Keyspace.getName:()Ljava/lang/String;
ldc "system"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 13
12: iconst_1
istore 1
13: StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReplayer int java.util.List org.apache.cassandra.db.Keyspace java.util.Iterator
StackMap stack:
aload 2
aload 3
invokevirtual org.apache.cassandra.db.Keyspace.flush:()Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
end local 3 14: StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReplayer int java.util.List top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
15: iload 1
ifne 17
16: aload 2
ldc "system"
invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
ldc "batches"
invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStore:(Ljava/lang/String;)Lorg/apache/cassandra/db/ColumnFamilyStore;
invokevirtual org.apache.cassandra.db.ColumnFamilyStore.forceFlush:()Lcom/google/common/util/concurrent/ListenableFuture;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
17: StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReplayer int java.util.List
StackMap stack:
aload 2
invokestatic org.apache.cassandra.utils.FBUtilities.waitOnFutures:(Ljava/lang/Iterable;)Ljava/util/List;
pop
18: aload 0
getfield org.apache.cassandra.db.commitlog.CommitLogReplayer.replayedCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/apache/cassandra/db/commitlog/CommitLogReplayer;
2 3 1 entry Ljava/util/Map$Entry<Ljava/util/UUID;Ljava/util/concurrent/atomic/AtomicInteger;>;
8 19 1 flushingSystem Z
9 19 2 futures Ljava/util/List<Ljava/util/concurrent/Future<*>;>;
11 14 3 keyspace Lorg/apache/cassandra/db/Keyspace;
public static org.apache.cassandra.db.commitlog.IntervalSet<org.apache.cassandra.db.commitlog.CommitLogPosition> persistedIntervals(java.lang.Iterable<org.apache.cassandra.io.sstable.format.SSTableReader>, org.apache.cassandra.db.commitlog.CommitLogPosition);
descriptor: (Ljava/lang/Iterable;Lorg/apache/cassandra/db/commitlog/CommitLogPosition;)Lorg/apache/cassandra/db/commitlog/IntervalSet;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: new org.apache.cassandra.db.commitlog.IntervalSet$Builder
dup
invokespecial org.apache.cassandra.db.commitlog.IntervalSet$Builder.<init>:()V
astore 2
start local 2 1: aload 0
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 4
goto 4
StackMap locals: java.lang.Iterable org.apache.cassandra.db.commitlog.CommitLogPosition org.apache.cassandra.db.commitlog.IntervalSet$Builder top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.io.sstable.format.SSTableReader
astore 3
start local 3 3: aload 2
aload 3
invokevirtual org.apache.cassandra.io.sstable.format.SSTableReader.getSSTableMetadata:()Lorg/apache/cassandra/io/sstable/metadata/StatsMetadata;
getfield org.apache.cassandra.io.sstable.metadata.StatsMetadata.commitLogIntervals:Lorg/apache/cassandra/db/commitlog/IntervalSet;
invokevirtual org.apache.cassandra.db.commitlog.IntervalSet$Builder.addAll:(Lorg/apache/cassandra/db/commitlog/IntervalSet;)V
end local 3 4: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: aload 1
ifnull 7
6: aload 2
getstatic org.apache.cassandra.db.commitlog.CommitLogPosition.NONE:Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
aload 1
invokevirtual org.apache.cassandra.db.commitlog.IntervalSet$Builder.add:(Ljava/lang/Comparable;Ljava/lang/Comparable;)V
7: StackMap locals: java.lang.Iterable org.apache.cassandra.db.commitlog.CommitLogPosition org.apache.cassandra.db.commitlog.IntervalSet$Builder
StackMap stack:
aload 2
invokevirtual org.apache.cassandra.db.commitlog.IntervalSet$Builder.build:()Lorg/apache/cassandra/db/commitlog/IntervalSet;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 onDisk Ljava/lang/Iterable<Lorg/apache/cassandra/io/sstable/format/SSTableReader;>;
0 8 1 truncatedAt Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
1 8 2 builder Lorg/apache/cassandra/db/commitlog/IntervalSet$Builder<Lorg/apache/cassandra/db/commitlog/CommitLogPosition;>;
3 4 3 reader Lorg/apache/cassandra/io/sstable/format/SSTableReader;
Signature: (Ljava/lang/Iterable<Lorg/apache/cassandra/io/sstable/format/SSTableReader;>;Lorg/apache/cassandra/db/commitlog/CommitLogPosition;)Lorg/apache/cassandra/db/commitlog/IntervalSet<Lorg/apache/cassandra/db/commitlog/CommitLogPosition;>;
MethodParameters:
Name Flags
onDisk
truncatedAt
public static org.apache.cassandra.db.commitlog.CommitLogPosition firstNotCovered(java.util.Collection<org.apache.cassandra.db.commitlog.IntervalSet<org.apache.cassandra.db.commitlog.CommitLogPosition>>);
descriptor: (Ljava/util/Collection;)Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
1: invokedynamic apply()Ljava/util/function/Function;
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:
(Ljava/lang/Object;)Ljava/lang/Object;
org/apache/cassandra/db/commitlog/CommitLogReplayer.lambda$0(Lorg/apache/cassandra/db/commitlog/IntervalSet;)Lorg/apache/cassandra/db/commitlog/CommitLogPosition; (6)
(Lorg/apache/cassandra/db/commitlog/IntervalSet;)Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
2: invokestatic com.google.common.collect.Ordering.natural:()Lcom/google/common/collect/Ordering;
invokeinterface java.util.stream.Stream.min:(Ljava/util/Comparator;)Ljava/util/Optional;
3: invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast org.apache.cassandra.db.commitlog.CommitLogPosition
4: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 ranges Ljava/util/Collection<Lorg/apache/cassandra/db/commitlog/IntervalSet<Lorg/apache/cassandra/db/commitlog/CommitLogPosition;>;>;
Signature: (Ljava/util/Collection<Lorg/apache/cassandra/db/commitlog/IntervalSet<Lorg/apache/cassandra/db/commitlog/CommitLogPosition;>;>;)Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
MethodParameters:
Name Flags
ranges
private boolean shouldReplay(java.util.UUID, org.apache.cassandra.db.commitlog.CommitLogPosition);
descriptor: (Ljava/util/UUID;Lorg/apache/cassandra/db/commitlog/CommitLogPosition;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.apache.cassandra.db.commitlog.CommitLogReplayer.cfPersisted:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.db.commitlog.IntervalSet
aload 2
invokevirtual org.apache.cassandra.db.commitlog.IntervalSet.contains:(Ljava/lang/Comparable;)Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/db/commitlog/CommitLogReplayer;
0 3 1 cfId Ljava/util/UUID;
0 3 2 position Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
MethodParameters:
Name Flags
cfId
position
protected boolean pointInTimeExceeded(org.apache.cassandra.db.Mutation);
descriptor: (Lorg/apache/cassandra/db/Mutation;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.db.commitlog.CommitLogReplayer.archiver:Lorg/apache/cassandra/db/commitlog/CommitLogArchiver;
getfield org.apache.cassandra.db.commitlog.CommitLogArchiver.restorePointInTime:J
lstore 2
start local 2 1: aload 1
invokevirtual org.apache.cassandra.db.Mutation.getPartitionUpdates:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 5
StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReplayer org.apache.cassandra.db.Mutation long top java.util.Iterator
StackMap stack:
2: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.db.partitions.PartitionUpdate
astore 4
start local 4 3: aload 0
getfield org.apache.cassandra.db.commitlog.CommitLogReplayer.archiver:Lorg/apache/cassandra/db/commitlog/CommitLogArchiver;
getfield org.apache.cassandra.db.commitlog.CommitLogArchiver.precision:Ljava/util/concurrent/TimeUnit;
aload 4
invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.maxTimestamp:()J
invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
lload 2
lcmp
ifle 5
4: iconst_1
ireturn
end local 4 5: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/cassandra/db/commitlog/CommitLogReplayer;
0 7 1 fm Lorg/apache/cassandra/db/Mutation;
1 7 2 restoreTarget J
3 5 4 upd Lorg/apache/cassandra/db/partitions/PartitionUpdate;
MethodParameters:
Name Flags
fm
public void handleMutation(org.apache.cassandra.db.Mutation, int, int, org.apache.cassandra.db.commitlog.CommitLogDescriptor);
descriptor: (Lorg/apache/cassandra/db/Mutation;IILorg/apache/cassandra/db/commitlog/CommitLogDescriptor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
dup
getfield org.apache.cassandra.db.commitlog.CommitLogReplayer.pendingMutationBytes:J
iload 2
i2l
ladd
putfield org.apache.cassandra.db.commitlog.CommitLogReplayer.pendingMutationBytes:J
1: aload 0
getfield org.apache.cassandra.db.commitlog.CommitLogReplayer.futures:Ljava/util/Queue;
getstatic org.apache.cassandra.db.commitlog.CommitLogReplayer.mutationInitiator:Lorg/apache/cassandra/db/commitlog/CommitLogReplayer$MutationInitiator;
aload 1
2: aload 4
getfield org.apache.cassandra.db.commitlog.CommitLogDescriptor.id:J
3: iload 2
4: iload 3
5: aload 0
6: invokevirtual org.apache.cassandra.db.commitlog.CommitLogReplayer$MutationInitiator.initiateMutation:(Lorg/apache/cassandra/db/Mutation;JIILorg/apache/cassandra/db/commitlog/CommitLogReplayer;)Ljava/util/concurrent/Future;
invokeinterface java.util.Queue.offer:(Ljava/lang/Object;)Z
pop
7: goto 9
8: StackMap locals:
StackMap stack:
aload 0
dup
getfield org.apache.cassandra.db.commitlog.CommitLogReplayer.pendingMutationBytes:J
aload 0
getfield org.apache.cassandra.db.commitlog.CommitLogReplayer.futures:Ljava/util/Queue;
invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
checkcast java.util.concurrent.Future
invokestatic org.apache.cassandra.utils.FBUtilities.waitOnFuture:(Ljava/util/concurrent/Future;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
i2l
lsub
putfield org.apache.cassandra.db.commitlog.CommitLogReplayer.pendingMutationBytes:J
9: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.db.commitlog.CommitLogReplayer.futures:Ljava/util/Queue;
invokeinterface java.util.Queue.size:()I
getstatic org.apache.cassandra.db.commitlog.CommitLogReplayer.MAX_OUTSTANDING_REPLAY_COUNT:I
if_icmpgt 8
10: aload 0
getfield org.apache.cassandra.db.commitlog.CommitLogReplayer.pendingMutationBytes:J
getstatic org.apache.cassandra.db.commitlog.CommitLogReplayer.MAX_OUTSTANDING_REPLAY_BYTES:J
lcmp
ifgt 8
11: aload 0
getfield org.apache.cassandra.db.commitlog.CommitLogReplayer.futures:Ljava/util/Queue;
invokeinterface java.util.Queue.isEmpty:()Z
ifne 12
aload 0
getfield org.apache.cassandra.db.commitlog.CommitLogReplayer.futures:Ljava/util/Queue;
invokeinterface java.util.Queue.peek:()Ljava/lang/Object;
checkcast java.util.concurrent.Future
invokeinterface java.util.concurrent.Future.isDone:()Z
ifne 8
12: 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 13 0 this Lorg/apache/cassandra/db/commitlog/CommitLogReplayer;
0 13 1 m Lorg/apache/cassandra/db/Mutation;
0 13 2 size I
0 13 3 entryLocation I
0 13 4 desc Lorg/apache/cassandra/db/commitlog/CommitLogDescriptor;
MethodParameters:
Name Flags
m
size
entryLocation
desc
public boolean shouldSkipSegmentOnError(org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadException);
descriptor: (Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadException;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getfield org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadException.permissible:Z
ifeq 2
1: getstatic org.apache.cassandra.db.commitlog.CommitLogReplayer.logger:Lorg/slf4j/Logger;
ldc "Ignoring commit log replay error likely due to incomplete flush to disk"
aload 1
invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
goto 7
2: StackMap locals:
StackMap stack:
ldc "cassandra.commitlog.ignorereplayerrors"
invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
ifeq 4
3: getstatic org.apache.cassandra.db.commitlog.CommitLogReplayer.logger:Lorg/slf4j/Logger;
ldc "Ignoring commit log replay error"
aload 1
invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
goto 7
4: StackMap locals:
StackMap stack:
ldc "Failed commit log replay"
aload 1
invokestatic org.apache.cassandra.db.commitlog.CommitLog.handleCommitError:(Ljava/lang/String;Ljava/lang/Throwable;)Z
ifne 7
5: getstatic org.apache.cassandra.db.commitlog.CommitLogReplayer.logger:Lorg/slf4j/Logger;
ldc "Replay stopped. If you wish to override this error and continue starting the node ignoring commit log replay problems, specify -Dcassandra.commitlog.ignorereplayerrors=true on the command line"
invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;)V
6: new org.apache.cassandra.db.commitlog.CommitLogReplayer$CommitLogReplayException
dup
aload 1
invokevirtual org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadException.getMessage:()Ljava/lang/String;
aload 1
invokespecial org.apache.cassandra.db.commitlog.CommitLogReplayer$CommitLogReplayException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
7: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/cassandra/db/commitlog/CommitLogReplayer;
0 8 1 exception Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadException;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
exception
public void handleUnrecoverableError(org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadException);
descriptor: (Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadException;)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.CommitLogReplayer.shouldSkipSegmentOnError:(Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadException;)Z
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/db/commitlog/CommitLogReplayer;
0 2 1 exception Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadException;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
exception
private static org.apache.cassandra.db.commitlog.CommitLogPosition lambda$0(org.apache.cassandra.db.commitlog.IntervalSet);
descriptor: (Lorg/apache/cassandra/db/commitlog/IntervalSet;)Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.cassandra.db.commitlog.IntervalSet.ends:()Ljava/util/Collection;
getstatic org.apache.cassandra.db.commitlog.CommitLogPosition.NONE:Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
invokestatic com.google.common.collect.Iterables.getFirst:(Ljava/lang/Iterable;Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.db.commitlog.CommitLogPosition
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 intervals Lorg/apache/cassandra/db/commitlog/IntervalSet<Lorg/apache/cassandra/db/commitlog/CommitLogPosition;>;
}
SourceFile: "CommitLogReplayer.java"
NestMembers:
org.apache.cassandra.db.commitlog.CommitLogReplayer$AlwaysReplayFilter org.apache.cassandra.db.commitlog.CommitLogReplayer$CommitLogReplayException org.apache.cassandra.db.commitlog.CommitLogReplayer$CustomReplayFilter org.apache.cassandra.db.commitlog.CommitLogReplayer$CustomReplayFilter$1 org.apache.cassandra.db.commitlog.CommitLogReplayer$MutationInitiator org.apache.cassandra.db.commitlog.CommitLogReplayer$MutationInitiator$1 org.apache.cassandra.db.commitlog.CommitLogReplayer$ReplayFilter
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Entry = java.util.Map$Entry of java.util.Map
public CommitLogReadException = org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadException of org.apache.cassandra.db.commitlog.CommitLogReadHandler
private AlwaysReplayFilter = org.apache.cassandra.db.commitlog.CommitLogReplayer$AlwaysReplayFilter of org.apache.cassandra.db.commitlog.CommitLogReplayer
public CommitLogReplayException = org.apache.cassandra.db.commitlog.CommitLogReplayer$CommitLogReplayException of org.apache.cassandra.db.commitlog.CommitLogReplayer
private CustomReplayFilter = org.apache.cassandra.db.commitlog.CommitLogReplayer$CustomReplayFilter of org.apache.cassandra.db.commitlog.CommitLogReplayer
public MutationInitiator = org.apache.cassandra.db.commitlog.CommitLogReplayer$MutationInitiator of org.apache.cassandra.db.commitlog.CommitLogReplayer
abstract ReplayFilter = org.apache.cassandra.db.commitlog.CommitLogReplayer$ReplayFilter of org.apache.cassandra.db.commitlog.CommitLogReplayer
public Builder = org.apache.cassandra.db.commitlog.IntervalSet$Builder of org.apache.cassandra.db.commitlog.IntervalSet