public final class org.apache.cassandra.hints.HintsService implements org.apache.cassandra.hints.HintsServiceMBean
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.apache.cassandra.hints.HintsService
super_class: java.lang.Object
{
private static final org.slf4j.Logger logger;
descriptor: Lorg/slf4j/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
public static org.apache.cassandra.hints.HintsService instance;
descriptor: Lorg/apache/cassandra/hints/HintsService;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
private static final java.lang.String MBEAN_NAME;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "org.apache.cassandra.hints:type=HintsService"
private static final int MIN_BUFFER_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 33554432
static final com.google.common.collect.ImmutableMap<java.lang.String, java.lang.Object> EMPTY_PARAMS;
descriptor: Lcom/google/common/collect/ImmutableMap;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Lcom/google/common/collect/ImmutableMap<Ljava/lang/String;Ljava/lang/Object;>;
private final org.apache.cassandra.hints.HintsCatalog catalog;
descriptor: Lorg/apache/cassandra/hints/HintsCatalog;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.cassandra.hints.HintsWriteExecutor writeExecutor;
descriptor: Lorg/apache/cassandra/hints/HintsWriteExecutor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.cassandra.hints.HintsBufferPool bufferPool;
descriptor: Lorg/apache/cassandra/hints/HintsBufferPool;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.cassandra.hints.HintsDispatchExecutor dispatchExecutor;
descriptor: Lorg/apache/cassandra/hints/HintsDispatchExecutor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.atomic.AtomicBoolean isDispatchPaused;
descriptor: Ljava/util/concurrent/atomic/AtomicBoolean;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile boolean isShutDown;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final java.util.concurrent.ScheduledFuture triggerFlushingFuture;
descriptor: Ljava/util/concurrent/ScheduledFuture;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile java.util.concurrent.ScheduledFuture triggerDispatchFuture;
descriptor: Ljava/util/concurrent/ScheduledFuture;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
public final org.apache.cassandra.metrics.HintedHandoffMetrics metrics;
descriptor: Lorg/apache/cassandra/metrics/HintedHandoffMetrics;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lorg/apache/cassandra/hints/HintsService;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic org.apache.cassandra.hints.HintsService.logger:Lorg/slf4j/Logger;
1: new org.apache.cassandra.hints.HintsService
dup
invokespecial org.apache.cassandra.hints.HintsService.<init>:()V
putstatic org.apache.cassandra.hints.HintsService.instance:Lorg/apache/cassandra/hints/HintsService;
2: invokestatic com.google.common.collect.ImmutableMap.of:()Lcom/google/common/collect/ImmutableMap;
putstatic org.apache.cassandra.hints.HintsService.EMPTY_PARAMS:Lcom/google/common/collect/ImmutableMap;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic org.apache.cassandra.gms.FailureDetector.instance:Lorg/apache/cassandra/gms/IFailureDetector;
invokespecial org.apache.cassandra.hints.HintsService.<init>:(Lorg/apache/cassandra/gms/IFailureDetector;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/hints/HintsService;
void <init>(org.apache.cassandra.gms.IFailureDetector);
descriptor: (Lorg/apache/cassandra/gms/IFailureDetector;)V
flags: (0x0000)
Code:
stack=8, locals=8, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield org.apache.cassandra.hints.HintsService.isShutDown:Z
2: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getHintsDirectory:()Ljava/io/File;
astore 2
start local 2 3: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getMaxHintsDeliveryThreads:()I
istore 3
start local 3 4: aload 0
aload 2
invokestatic org.apache.cassandra.hints.HintsService.createDescriptorParams:()Lcom/google/common/collect/ImmutableMap;
invokestatic org.apache.cassandra.hints.HintsCatalog.load:(Ljava/io/File;Lcom/google/common/collect/ImmutableMap;)Lorg/apache/cassandra/hints/HintsCatalog;
putfield org.apache.cassandra.hints.HintsService.catalog:Lorg/apache/cassandra/hints/HintsCatalog;
5: aload 0
new org.apache.cassandra.hints.HintsWriteExecutor
dup
aload 0
getfield org.apache.cassandra.hints.HintsService.catalog:Lorg/apache/cassandra/hints/HintsCatalog;
invokespecial org.apache.cassandra.hints.HintsWriteExecutor.<init>:(Lorg/apache/cassandra/hints/HintsCatalog;)V
putfield org.apache.cassandra.hints.HintsService.writeExecutor:Lorg/apache/cassandra/hints/HintsWriteExecutor;
6: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getMaxMutationSize:()I
iconst_2
imul
ldc 33554432
invokestatic java.lang.Math.max:(II)I
istore 4
start local 4 7: aload 0
new org.apache.cassandra.hints.HintsBufferPool
dup
iload 4
aload 0
getfield org.apache.cassandra.hints.HintsService.writeExecutor:Lorg/apache/cassandra/hints/HintsWriteExecutor;
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic flush(Lorg/apache/cassandra/hints/HintsWriteExecutor;)Lorg/apache/cassandra/hints/HintsBufferPool$FlushCallback;
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:
(Lorg/apache/cassandra/hints/HintsBuffer;Lorg/apache/cassandra/hints/HintsBufferPool;)V
org/apache/cassandra/hints/HintsWriteExecutor.flushBuffer(Lorg/apache/cassandra/hints/HintsBuffer;Lorg/apache/cassandra/hints/HintsBufferPool;)Ljava/util/concurrent/Future; (5)
(Lorg/apache/cassandra/hints/HintsBuffer;Lorg/apache/cassandra/hints/HintsBufferPool;)V
invokespecial org.apache.cassandra.hints.HintsBufferPool.<init>:(ILorg/apache/cassandra/hints/HintsBufferPool$FlushCallback;)V
putfield org.apache.cassandra.hints.HintsService.bufferPool:Lorg/apache/cassandra/hints/HintsBufferPool;
8: aload 0
new java.util.concurrent.atomic.AtomicBoolean
dup
iconst_1
invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
putfield org.apache.cassandra.hints.HintsService.isDispatchPaused:Ljava/util/concurrent/atomic/AtomicBoolean;
9: aload 0
new org.apache.cassandra.hints.HintsDispatchExecutor
dup
aload 2
iload 3
aload 0
getfield org.apache.cassandra.hints.HintsService.isDispatchPaused:Ljava/util/concurrent/atomic/AtomicBoolean;
aload 1
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic apply(Lorg/apache/cassandra/gms/IFailureDetector;)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/gms/IFailureDetector.isAlive(Ljava/net/InetAddress;)Z (9 itf)
(Ljava/net/InetAddress;)Ljava/lang/Boolean;
invokespecial org.apache.cassandra.hints.HintsDispatchExecutor.<init>:(Ljava/io/File;ILjava/util/concurrent/atomic/AtomicBoolean;Ljava/util/function/Function;)V
putfield org.apache.cassandra.hints.HintsService.dispatchExecutor:Lorg/apache/cassandra/hints/HintsDispatchExecutor;
10: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getHintsFlushPeriodInMS:()I
istore 7
start local 7 11: aload 0
getstatic org.apache.cassandra.concurrent.ScheduledExecutors.optionalTasks:Lorg/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor;
aload 0
invokedynamic run(Lorg/apache/cassandra/hints/HintsService;)Ljava/lang/Runnable;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()V
org/apache/cassandra/hints/HintsService.lambda$2()V (7)
()V
12: iload 7
i2l
13: iload 7
i2l
14: getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
15: invokevirtual org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor.scheduleWithFixedDelay:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
putfield org.apache.cassandra.hints.HintsService.triggerFlushingFuture:Ljava/util/concurrent/ScheduledFuture;
16: aload 0
new org.apache.cassandra.metrics.HintedHandoffMetrics
dup
invokespecial org.apache.cassandra.metrics.HintedHandoffMetrics.<init>:()V
putfield org.apache.cassandra.hints.HintsService.metrics:Lorg/apache/cassandra/metrics/HintedHandoffMetrics;
17: return
end local 7 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/apache/cassandra/hints/HintsService;
0 18 1 failureDetector Lorg/apache/cassandra/gms/IFailureDetector;
3 18 2 hintsDirectory Ljava/io/File;
4 18 3 maxDeliveryThreads I
7 18 4 bufferSize I
11 18 7 flushPeriod I
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
com.google.common.annotations.VisibleForTesting()
MethodParameters:
Name Flags
failureDetector
private static com.google.common.collect.ImmutableMap<java.lang.String, java.lang.Object> createDescriptorParams();
descriptor: ()Lcom/google/common/collect/ImmutableMap;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=0
0: invokestatic com.google.common.collect.ImmutableMap.builder:()Lcom/google/common/collect/ImmutableMap$Builder;
astore 0
start local 0 1: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getHintsCompression:()Lorg/apache/cassandra/config/ParameterizedClass;
astore 1
start local 1 2: aload 1
ifnull 8
3: invokestatic com.google.common.collect.ImmutableMap.builder:()Lcom/google/common/collect/ImmutableMap$Builder;
astore 2
start local 2 4: aload 2
ldc "class_name"
aload 1
getfield org.apache.cassandra.config.ParameterizedClass.class_name:Ljava/lang/String;
invokevirtual com.google.common.collect.ImmutableMap$Builder.put:(Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/collect/ImmutableMap$Builder;
pop
5: aload 1
getfield org.apache.cassandra.config.ParameterizedClass.parameters:Ljava/util/Map;
ifnull 7
6: aload 2
ldc "parameters"
aload 1
getfield org.apache.cassandra.config.ParameterizedClass.parameters:Ljava/util/Map;
invokevirtual com.google.common.collect.ImmutableMap$Builder.put:(Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/collect/ImmutableMap$Builder;
pop
7: StackMap locals: com.google.common.collect.ImmutableMap$Builder org.apache.cassandra.config.ParameterizedClass com.google.common.collect.ImmutableMap$Builder
StackMap stack:
aload 0
ldc "compression"
aload 2
invokevirtual com.google.common.collect.ImmutableMap$Builder.build:()Lcom/google/common/collect/ImmutableMap;
invokevirtual com.google.common.collect.ImmutableMap$Builder.put:(Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/collect/ImmutableMap$Builder;
pop
end local 2 8: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.google.common.collect.ImmutableMap$Builder.build:()Lcom/google/common/collect/ImmutableMap;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 9 0 builder Lcom/google/common/collect/ImmutableMap$Builder<Ljava/lang/String;Ljava/lang/Object;>;
2 9 1 compressionConfig Lorg/apache/cassandra/config/ParameterizedClass;
4 8 2 compressorParams Lcom/google/common/collect/ImmutableMap$Builder<Ljava/lang/String;Ljava/lang/Object;>;
Signature: ()Lcom/google/common/collect/ImmutableMap<Ljava/lang/String;Ljava/lang/Object;>;
public void registerMBean();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic org.apache.cassandra.utils.MBeanWrapper.instance:Lorg/apache/cassandra/utils/MBeanWrapper;
aload 0
ldc "org.apache.cassandra.hints:type=HintsService"
invokeinterface org.apache.cassandra.utils.MBeanWrapper.registerMBean:(Ljava/lang/Object;Ljava/lang/String;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/hints/HintsService;
public void write(java.lang.Iterable<java.util.UUID>, org.apache.cassandra.hints.Hint);
descriptor: (Ljava/lang/Iterable;Lorg/apache/cassandra/hints/Hint;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.apache.cassandra.hints.HintsService.isShutDown:Z
ifeq 2
1: new java.lang.IllegalStateException
dup
ldc "HintsService is shut down and can't accept new hints"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.hints.HintsService.catalog:Lorg/apache/cassandra/hints/HintsCatalog;
aload 1
invokevirtual org.apache.cassandra.hints.HintsCatalog.maybeLoadStores:(Ljava/lang/Iterable;)V
3: aload 0
getfield org.apache.cassandra.hints.HintsService.bufferPool:Lorg/apache/cassandra/hints/HintsBufferPool;
aload 1
aload 2
invokevirtual org.apache.cassandra.hints.HintsBufferPool.write:(Ljava/lang/Iterable;Lorg/apache/cassandra/hints/Hint;)V
4: getstatic org.apache.cassandra.metrics.StorageMetrics.totalHints:Lcom/codahale/metrics/Counter;
aload 1
invokestatic com.google.common.collect.Iterables.size:(Ljava/lang/Iterable;)I
i2l
invokevirtual com.codahale.metrics.Counter.inc:(J)V
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/cassandra/hints/HintsService;
0 6 1 hostIds Ljava/lang/Iterable<Ljava/util/UUID;>;
0 6 2 hint Lorg/apache/cassandra/hints/Hint;
Signature: (Ljava/lang/Iterable<Ljava/util/UUID;>;Lorg/apache/cassandra/hints/Hint;)V
MethodParameters:
Name Flags
hostIds
hint
public void write(java.util.UUID, org.apache.cassandra.hints.Hint);
descriptor: (Ljava/util/UUID;Lorg/apache/cassandra/hints/Hint;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
aload 2
invokevirtual org.apache.cassandra.hints.HintsService.write:(Ljava/lang/Iterable;Lorg/apache/cassandra/hints/Hint;)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/hints/HintsService;
0 2 1 hostId Ljava/util/UUID;
0 2 2 hint Lorg/apache/cassandra/hints/Hint;
MethodParameters:
Name Flags
hostId
hint
void writeForAllReplicas(org.apache.cassandra.hints.Hint);
descriptor: (Lorg/apache/cassandra/hints/Hint;)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 1
getfield org.apache.cassandra.hints.Hint.mutation:Lorg/apache/cassandra/db/Mutation;
invokevirtual org.apache.cassandra.db.Mutation.getKeyspaceName:()Ljava/lang/String;
astore 2
start local 2 1: aload 1
getfield org.apache.cassandra.hints.Hint.mutation:Lorg/apache/cassandra/db/Mutation;
invokevirtual org.apache.cassandra.db.Mutation.key:()Lorg/apache/cassandra/db/DecoratedKey;
invokevirtual org.apache.cassandra.db.DecoratedKey.getToken:()Lorg/apache/cassandra/dht/Token;
astore 3
start local 3 2: getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
aload 2
aload 3
invokevirtual org.apache.cassandra.service.StorageService.getNaturalAndPendingEndpoints:(Ljava/lang/String;Lorg/apache/cassandra/dht/Token;)Ljava/lang/Iterable;
invokedynamic apply()Lcom/google/common/base/Predicate;
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;)Z
org/apache/cassandra/service/StorageProxy.shouldHint(Ljava/net/InetAddress;)Z (6)
(Ljava/net/InetAddress;)Z
invokestatic com.google.common.collect.Iterables.filter:(Ljava/lang/Iterable;Lcom/google/common/base/Predicate;)Ljava/lang/Iterable;
3: getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic apply(Lorg/apache/cassandra/service/StorageService;)Lcom/google/common/base/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/service/StorageService.getHostIdForEndpoint(Ljava/net/InetAddress;)Ljava/util/UUID; (5)
(Ljava/net/InetAddress;)Ljava/util/UUID;
4: invokestatic com.google.common.collect.Iterables.transform:(Ljava/lang/Iterable;Lcom/google/common/base/Function;)Ljava/lang/Iterable;
5: astore 4
start local 4 6: aload 0
aload 4
aload 1
invokevirtual org.apache.cassandra.hints.HintsService.write:(Ljava/lang/Iterable;Lorg/apache/cassandra/hints/Hint;)V
7: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/cassandra/hints/HintsService;
0 8 1 hint Lorg/apache/cassandra/hints/Hint;
1 8 2 keyspaceName Ljava/lang/String;
2 8 3 token Lorg/apache/cassandra/dht/Token;
6 8 4 hostIds Ljava/lang/Iterable<Ljava/util/UUID;>;
MethodParameters:
Name Flags
hint
public void flushAndFsyncBlockingly(java.lang.Iterable<java.util.UUID>);
descriptor: (Ljava/lang/Iterable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield org.apache.cassandra.hints.HintsService.catalog:Lorg/apache/cassandra/hints/HintsCatalog;
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic apply(Lorg/apache/cassandra/hints/HintsCatalog;)Lcom/google/common/base/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/hints/HintsCatalog.get(Ljava/util/UUID;)Lorg/apache/cassandra/hints/HintsStore; (5)
(Ljava/util/UUID;)Lorg/apache/cassandra/hints/HintsStore;
invokestatic com.google.common.collect.Iterables.transform:(Ljava/lang/Iterable;Lcom/google/common/base/Function;)Ljava/lang/Iterable;
astore 2
start local 2 1: aload 0
getfield org.apache.cassandra.hints.HintsService.writeExecutor:Lorg/apache/cassandra/hints/HintsWriteExecutor;
aload 0
getfield org.apache.cassandra.hints.HintsService.bufferPool:Lorg/apache/cassandra/hints/HintsBufferPool;
aload 2
invokevirtual org.apache.cassandra.hints.HintsWriteExecutor.flushBufferPool:(Lorg/apache/cassandra/hints/HintsBufferPool;Ljava/lang/Iterable;)Ljava/util/concurrent/Future;
pop
2: aload 0
getfield org.apache.cassandra.hints.HintsService.writeExecutor:Lorg/apache/cassandra/hints/HintsWriteExecutor;
aload 2
invokevirtual org.apache.cassandra.hints.HintsWriteExecutor.fsyncWritersBlockingly:(Ljava/lang/Iterable;)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/hints/HintsService;
0 4 1 hostIds Ljava/lang/Iterable<Ljava/util/UUID;>;
1 4 2 stores Ljava/lang/Iterable<Lorg/apache/cassandra/hints/HintsStore;>;
Signature: (Ljava/lang/Iterable<Ljava/util/UUID;>;)V
MethodParameters:
Name Flags
hostIds
public synchronized void startDispatch();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=8, locals=2, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.hints.HintsService.isShutDown:Z
ifeq 2
1: new java.lang.IllegalStateException
dup
ldc "HintsService is shut down and cannot be restarted"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.hints.HintsService.isDispatchPaused:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
3: new org.apache.cassandra.hints.HintsDispatchTrigger
dup
aload 0
getfield org.apache.cassandra.hints.HintsService.catalog:Lorg/apache/cassandra/hints/HintsCatalog;
aload 0
getfield org.apache.cassandra.hints.HintsService.writeExecutor:Lorg/apache/cassandra/hints/HintsWriteExecutor;
aload 0
getfield org.apache.cassandra.hints.HintsService.dispatchExecutor:Lorg/apache/cassandra/hints/HintsDispatchExecutor;
aload 0
getfield org.apache.cassandra.hints.HintsService.isDispatchPaused:Ljava/util/concurrent/atomic/AtomicBoolean;
invokespecial org.apache.cassandra.hints.HintsDispatchTrigger.<init>:(Lorg/apache/cassandra/hints/HintsCatalog;Lorg/apache/cassandra/hints/HintsWriteExecutor;Lorg/apache/cassandra/hints/HintsDispatchExecutor;Ljava/util/concurrent/atomic/AtomicBoolean;)V
astore 1
start local 1 4: aload 0
getstatic org.apache.cassandra.concurrent.ScheduledExecutors.scheduledTasks:Lorg/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor;
aload 1
ldc 10
ldc 10
getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor.scheduleWithFixedDelay:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
putfield org.apache.cassandra.hints.HintsService.triggerDispatchFuture:Ljava/util/concurrent/ScheduledFuture;
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/cassandra/hints/HintsService;
4 6 1 trigger Lorg/apache/cassandra/hints/HintsDispatchTrigger;
public void pauseDispatch();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic org.apache.cassandra.hints.HintsService.logger:Lorg/slf4j/Logger;
ldc "Paused hints dispatch"
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
1: aload 0
getfield org.apache.cassandra.hints.HintsService.isDispatchPaused:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/hints/HintsService;
public void resumeDispatch();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic org.apache.cassandra.hints.HintsService.logger:Lorg/slf4j/Logger;
ldc "Resumed hints dispatch"
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
1: aload 0
getfield org.apache.cassandra.hints.HintsService.isDispatchPaused:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/hints/HintsService;
public synchronized void shutdownBlocking();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.hints.HintsService.isShutDown:Z
ifeq 2
1: new java.lang.IllegalStateException
dup
ldc "HintsService has already been shut down"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.apache.cassandra.hints.HintsService.isShutDown:Z
3: aload 0
getfield org.apache.cassandra.hints.HintsService.triggerDispatchFuture:Ljava/util/concurrent/ScheduledFuture;
ifnull 5
4: aload 0
getfield org.apache.cassandra.hints.HintsService.triggerDispatchFuture:Ljava/util/concurrent/ScheduledFuture;
iconst_0
invokeinterface java.util.concurrent.ScheduledFuture.cancel:(Z)Z
pop
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.cassandra.hints.HintsService.pauseDispatch:()V
6: aload 0
getfield org.apache.cassandra.hints.HintsService.triggerFlushingFuture:Ljava/util/concurrent/ScheduledFuture;
iconst_0
invokeinterface java.util.concurrent.ScheduledFuture.cancel:(Z)Z
pop
7: aload 0
getfield org.apache.cassandra.hints.HintsService.writeExecutor:Lorg/apache/cassandra/hints/HintsWriteExecutor;
aload 0
getfield org.apache.cassandra.hints.HintsService.bufferPool:Lorg/apache/cassandra/hints/HintsBufferPool;
invokevirtual org.apache.cassandra.hints.HintsWriteExecutor.flushBufferPool:(Lorg/apache/cassandra/hints/HintsBufferPool;)Ljava/util/concurrent/Future;
invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
pop
8: aload 0
getfield org.apache.cassandra.hints.HintsService.writeExecutor:Lorg/apache/cassandra/hints/HintsWriteExecutor;
invokevirtual org.apache.cassandra.hints.HintsWriteExecutor.closeAllWriters:()Ljava/util/concurrent/Future;
invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
pop
9: aload 0
getfield org.apache.cassandra.hints.HintsService.dispatchExecutor:Lorg/apache/cassandra/hints/HintsDispatchExecutor;
invokevirtual org.apache.cassandra.hints.HintsDispatchExecutor.shutdownBlocking:()V
10: aload 0
getfield org.apache.cassandra.hints.HintsService.writeExecutor:Lorg/apache/cassandra/hints/HintsWriteExecutor;
invokevirtual org.apache.cassandra.hints.HintsWriteExecutor.shutdownBlocking:()V
11: aload 0
getfield org.apache.cassandra.hints.HintsService.bufferPool:Lorg/apache/cassandra/hints/HintsBufferPool;
invokevirtual org.apache.cassandra.hints.HintsBufferPool.close:()V
12: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/apache/cassandra/hints/HintsService;
Exceptions:
throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
public void deleteAllHints();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.hints.HintsService.catalog:Lorg/apache/cassandra/hints/HintsCatalog;
invokevirtual org.apache.cassandra.hints.HintsCatalog.deleteAllHints:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/hints/HintsService;
public void deleteAllHintsForEndpoint(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
astore 2
start local 2 1: goto 4
end local 2 2: StackMap locals:
StackMap stack: java.net.UnknownHostException
astore 3
start local 3 3: new java.lang.IllegalArgumentException
dup
aload 3
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 start local 2 4: StackMap locals: java.net.InetAddress
StackMap stack:
aload 0
aload 2
invokevirtual org.apache.cassandra.hints.HintsService.deleteAllHintsForEndpoint:(Ljava/net/InetAddress;)V
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/cassandra/hints/HintsService;
0 6 1 address Ljava/lang/String;
1 2 2 target Ljava/net/InetAddress;
4 6 2 target Ljava/net/InetAddress;
3 4 3 e Ljava/net/UnknownHostException;
Exception table:
from to target type
0 1 2 Class java.net.UnknownHostException
MethodParameters:
Name Flags
address
public void deleteAllHintsForEndpoint(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
aload 1
invokevirtual org.apache.cassandra.service.StorageService.getHostIdForEndpoint:(Ljava/net/InetAddress;)Ljava/util/UUID;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Can't delete hints for unknown address "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.util.UUID
StackMap stack:
aload 0
getfield org.apache.cassandra.hints.HintsService.catalog:Lorg/apache/cassandra/hints/HintsCatalog;
aload 2
invokevirtual org.apache.cassandra.hints.HintsCatalog.deleteAllHints:(Ljava/util/UUID;)V
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/hints/HintsService;
0 5 1 target Ljava/net/InetAddress;
1 5 2 hostId Ljava/util/UUID;
MethodParameters:
Name Flags
target
public void excise(java.util.UUID);
descriptor: (Ljava/util/UUID;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.hints.HintsService.catalog:Lorg/apache/cassandra/hints/HintsCatalog;
aload 1
invokevirtual org.apache.cassandra.hints.HintsCatalog.getNullable:(Ljava/util/UUID;)Lorg/apache/cassandra/hints/HintsStore;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: return
3: StackMap locals: org.apache.cassandra.hints.HintsStore
StackMap stack:
aload 0
getfield org.apache.cassandra.hints.HintsService.writeExecutor:Lorg/apache/cassandra/hints/HintsWriteExecutor;
aload 0
getfield org.apache.cassandra.hints.HintsService.bufferPool:Lorg/apache/cassandra/hints/HintsBufferPool;
aload 2
invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
invokevirtual org.apache.cassandra.hints.HintsWriteExecutor.flushBufferPool:(Lorg/apache/cassandra/hints/HintsBufferPool;Ljava/lang/Iterable;)Ljava/util/concurrent/Future;
astore 3
start local 3 4: aload 0
getfield org.apache.cassandra.hints.HintsService.writeExecutor:Lorg/apache/cassandra/hints/HintsWriteExecutor;
aload 2
invokevirtual org.apache.cassandra.hints.HintsWriteExecutor.closeWriter:(Lorg/apache/cassandra/hints/HintsStore;)Ljava/util/concurrent/Future;
astore 4
start local 4 5: aload 3
invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
pop
6: aload 4
invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
pop
7: goto 10
8: StackMap locals: org.apache.cassandra.hints.HintsService java.util.UUID org.apache.cassandra.hints.HintsStore java.util.concurrent.Future java.util.concurrent.Future
StackMap stack: java.lang.Exception
astore 5
start local 5 9: new java.lang.RuntimeException
dup
aload 5
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 5 10: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.hints.HintsService.dispatchExecutor:Lorg/apache/cassandra/hints/HintsDispatchExecutor;
aload 2
getfield org.apache.cassandra.hints.HintsStore.hostId:Ljava/util/UUID;
invokevirtual org.apache.cassandra.hints.HintsDispatchExecutor.interruptDispatch:(Ljava/util/UUID;)V
11: aload 0
getfield org.apache.cassandra.hints.HintsService.catalog:Lorg/apache/cassandra/hints/HintsCatalog;
aload 1
invokevirtual org.apache.cassandra.hints.HintsCatalog.exciseStore:(Ljava/util/UUID;)V
12: 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/hints/HintsService;
0 13 1 hostId Ljava/util/UUID;
1 13 2 store Lorg/apache/cassandra/hints/HintsStore;
4 13 3 flushFuture Ljava/util/concurrent/Future;
5 13 4 closeFuture Ljava/util/concurrent/Future;
9 10 5 e Ljava/lang/Exception;
Exception table:
from to target type
5 7 8 Class java.lang.InterruptedException
5 7 8 Class java.util.concurrent.ExecutionException
MethodParameters:
Name Flags
hostId
public java.util.concurrent.Future transferHints(java.util.function.Supplier<java.util.UUID>);
descriptor: (Ljava/util/function/Supplier;)Ljava/util/concurrent/Future;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.hints.HintsService.writeExecutor:Lorg/apache/cassandra/hints/HintsWriteExecutor;
aload 0
getfield org.apache.cassandra.hints.HintsService.bufferPool:Lorg/apache/cassandra/hints/HintsBufferPool;
invokevirtual org.apache.cassandra.hints.HintsWriteExecutor.flushBufferPool:(Lorg/apache/cassandra/hints/HintsBufferPool;)Ljava/util/concurrent/Future;
astore 2
start local 2 1: aload 0
getfield org.apache.cassandra.hints.HintsService.writeExecutor:Lorg/apache/cassandra/hints/HintsWriteExecutor;
invokevirtual org.apache.cassandra.hints.HintsWriteExecutor.closeAllWriters:()Ljava/util/concurrent/Future;
astore 3
start local 3 2: aload 2
invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
pop
3: aload 3
invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
pop
4: goto 7
5: StackMap locals: org.apache.cassandra.hints.HintsService java.util.function.Supplier java.util.concurrent.Future java.util.concurrent.Future
StackMap stack: java.lang.Exception
astore 4
start local 4 6: new java.lang.RuntimeException
dup
aload 4
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 7: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.cassandra.hints.HintsService.resumeDispatch:()V
8: aload 0
getfield org.apache.cassandra.hints.HintsService.catalog:Lorg/apache/cassandra/hints/HintsCatalog;
invokevirtual org.apache.cassandra.hints.HintsCatalog.stores:()Ljava/util/stream/Stream;
aload 0
getfield org.apache.cassandra.hints.HintsService.dispatchExecutor:Lorg/apache/cassandra/hints/HintsDispatchExecutor;
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic accept(Lorg/apache/cassandra/hints/HintsDispatchExecutor;)Ljava/util/function/Consumer;
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;)V
org/apache/cassandra/hints/HintsDispatchExecutor.completeDispatchBlockingly(Lorg/apache/cassandra/hints/HintsStore;)V (5)
(Lorg/apache/cassandra/hints/HintsStore;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
9: aload 0
getfield org.apache.cassandra.hints.HintsService.dispatchExecutor:Lorg/apache/cassandra/hints/HintsDispatchExecutor;
aload 0
getfield org.apache.cassandra.hints.HintsService.catalog:Lorg/apache/cassandra/hints/HintsCatalog;
aload 1
invokevirtual org.apache.cassandra.hints.HintsDispatchExecutor.transfer:(Lorg/apache/cassandra/hints/HintsCatalog;Ljava/util/function/Supplier;)Ljava/util/concurrent/Future;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/apache/cassandra/hints/HintsService;
0 10 1 hostIdSupplier Ljava/util/function/Supplier<Ljava/util/UUID;>;
1 10 2 flushFuture Ljava/util/concurrent/Future;
2 10 3 closeFuture Ljava/util/concurrent/Future;
6 7 4 e Ljava/lang/Exception;
Exception table:
from to target type
2 4 5 Class java.lang.InterruptedException
2 4 5 Class java.util.concurrent.ExecutionException
Signature: (Ljava/util/function/Supplier<Ljava/util/UUID;>;)Ljava/util/concurrent/Future;
MethodParameters:
Name Flags
hostIdSupplier
org.apache.cassandra.hints.HintsCatalog getCatalog();
descriptor: ()Lorg/apache/cassandra/hints/HintsCatalog;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.hints.HintsService.catalog:Lorg/apache/cassandra/hints/HintsCatalog;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/hints/HintsService;
public boolean isShutDown();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.hints.HintsService.isShutDown:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/hints/HintsService;
private void lambda$2();
descriptor: ()V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.hints.HintsService.writeExecutor:Lorg/apache/cassandra/hints/HintsWriteExecutor;
aload 0
getfield org.apache.cassandra.hints.HintsService.bufferPool:Lorg/apache/cassandra/hints/HintsBufferPool;
invokevirtual org.apache.cassandra.hints.HintsWriteExecutor.flushBufferPool:(Lorg/apache/cassandra/hints/HintsBufferPool;)Ljava/util/concurrent/Future;
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/hints/HintsService;
}
SourceFile: "HintsService.java"
InnerClasses:
public Builder = com.google.common.collect.ImmutableMap$Builder of com.google.common.collect.ImmutableMap
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
abstract FlushCallback = org.apache.cassandra.hints.HintsBufferPool$FlushCallback of org.apache.cassandra.hints.HintsBufferPool