public class org.apache.lucene.index.ConcurrentMergeScheduler extends org.apache.lucene.index.MergeScheduler
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.lucene.index.ConcurrentMergeScheduler
super_class: org.apache.lucene.index.MergeScheduler
{
public static final int AUTO_DETECT_MERGES_AND_THREADS;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: -1
public static final java.lang.String DEFAULT_CPU_CORE_COUNT_PROPERTY;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "lucene.cms.override_core_count"
public static final java.lang.String DEFAULT_SPINS_PROPERTY;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "lucene.cms.override_spins"
protected final java.util.List<org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread> mergeThreads;
descriptor: Ljava/util/List;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Ljava/util/List<Lorg/apache/lucene/index/ConcurrentMergeScheduler$MergeThread;>;
private int maxThreadCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int maxMergeCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
protected int mergeThreadCount;
descriptor: I
flags: (0x0004) ACC_PROTECTED
private static final double MIN_MERGE_MB_PER_SEC;
descriptor: D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5.0
private static final double MAX_MERGE_MB_PER_SEC;
descriptor: D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 10240.0
private static final double START_MB_PER_SEC;
descriptor: D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 20.0
private static final double MIN_BIG_MERGE_MB;
descriptor: D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 50.0
protected double targetMBPerSec;
descriptor: D
flags: (0x0004) ACC_PROTECTED
private boolean doAutoIOThrottle;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private double forceMergeMBPerSec;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private boolean suppressExceptions;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
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/lucene/index/ConcurrentMergeScheduler;
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.lucene.index.ConcurrentMergeScheduler.$assertionsDisabled:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.apache.lucene.index.MergeScheduler.<init>:()V
1: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.apache.lucene.index.ConcurrentMergeScheduler.mergeThreads:Ljava/util/List;
2: aload 0
iconst_m1
putfield org.apache.lucene.index.ConcurrentMergeScheduler.maxThreadCount:I
3: aload 0
iconst_m1
putfield org.apache.lucene.index.ConcurrentMergeScheduler.maxMergeCount:I
4: aload 0
ldc 20.0
putfield org.apache.lucene.index.ConcurrentMergeScheduler.targetMBPerSec:D
5: aload 0
iconst_1
putfield org.apache.lucene.index.ConcurrentMergeScheduler.doAutoIOThrottle:Z
6: aload 0
ldc Infinity
putfield org.apache.lucene.index.ConcurrentMergeScheduler.forceMergeMBPerSec:D
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
public synchronized void setMaxMergesAndThreads(int, int);
descriptor: (II)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 1
iconst_m1
if_icmpne 4
iload 2
iconst_m1
if_icmpne 4
1: aload 0
iconst_m1
putfield org.apache.lucene.index.ConcurrentMergeScheduler.maxMergeCount:I
2: aload 0
iconst_m1
putfield org.apache.lucene.index.ConcurrentMergeScheduler.maxThreadCount:I
3: goto 16
StackMap locals:
StackMap stack:
4: iload 1
iconst_m1
if_icmpne 6
5: new java.lang.IllegalArgumentException
dup
ldc "both maxMergeCount and maxThreadCount must be AUTO_DETECT_MERGES_AND_THREADS"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
iload 2
iconst_m1
if_icmpne 8
7: new java.lang.IllegalArgumentException
dup
ldc "both maxMergeCount and maxThreadCount must be AUTO_DETECT_MERGES_AND_THREADS"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
iload 2
iconst_1
if_icmpge 10
9: new java.lang.IllegalArgumentException
dup
ldc "maxThreadCount should be at least 1"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
iload 1
iconst_1
if_icmpge 12
11: new java.lang.IllegalArgumentException
dup
ldc "maxMergeCount should be at least 1"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
iload 2
iload 1
if_icmple 14
13: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "maxThreadCount should be <= maxMergeCount (= "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals:
StackMap stack:
aload 0
iload 2
putfield org.apache.lucene.index.ConcurrentMergeScheduler.maxThreadCount:I
15: aload 0
iload 1
putfield org.apache.lucene.index.ConcurrentMergeScheduler.maxMergeCount:I
16: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
0 17 1 maxMergeCount I
0 17 2 maxThreadCount I
MethodParameters:
Name Flags
maxMergeCount
maxThreadCount
public synchronized void setDefaultMaxMergesAndThreads(boolean);
descriptor: (Z)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: iload 1
ifeq 4
1: aload 0
iconst_1
putfield org.apache.lucene.index.ConcurrentMergeScheduler.maxThreadCount:I
2: aload 0
bipush 6
putfield org.apache.lucene.index.ConcurrentMergeScheduler.maxMergeCount:I
3: goto 12
4: StackMap locals:
StackMap stack:
invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
invokevirtual java.lang.Runtime.availableProcessors:()I
istore 2
start local 2 5: ldc "lucene.cms.override_core_count"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 6: aload 3
ifnull 10
7: aload 3
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 2
end local 3 8: goto 10
StackMap locals: org.apache.lucene.index.ConcurrentMergeScheduler int int
StackMap stack: java.lang.Throwable
9: pop
10: StackMap locals:
StackMap stack:
aload 0
iconst_1
iconst_4
iload 2
iconst_2
idiv
invokestatic java.lang.Math.min:(II)I
invokestatic java.lang.Math.max:(II)I
putfield org.apache.lucene.index.ConcurrentMergeScheduler.maxThreadCount:I
11: aload 0
aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.maxThreadCount:I
iconst_5
iadd
putfield org.apache.lucene.index.ConcurrentMergeScheduler.maxMergeCount:I
end local 2 12: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
0 13 1 spins Z
5 12 2 coreCount I
6 8 3 value Ljava/lang/String;
Exception table:
from to target type
5 8 9 Class java.lang.Throwable
MethodParameters:
Name Flags
spins
public synchronized void setForceMergeMBPerSec(double);
descriptor: (D)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
dload 1
putfield org.apache.lucene.index.ConcurrentMergeScheduler.forceMergeMBPerSec:D
1: aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.updateMergeThreads:()V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
0 3 1 v D
MethodParameters:
Name Flags
v
public synchronized double getForceMergeMBPerSec();
descriptor: ()D
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.forceMergeMBPerSec:D
dreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
public synchronized void enableAutoIOThrottle();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield org.apache.lucene.index.ConcurrentMergeScheduler.doAutoIOThrottle:Z
1: aload 0
ldc 20.0
putfield org.apache.lucene.index.ConcurrentMergeScheduler.targetMBPerSec:D
2: aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.updateMergeThreads:()V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
public synchronized void disableAutoIOThrottle();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
putfield org.apache.lucene.index.ConcurrentMergeScheduler.doAutoIOThrottle:Z
1: aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.updateMergeThreads:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
public synchronized boolean getAutoIOThrottle();
descriptor: ()Z
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.doAutoIOThrottle:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
public synchronized double getIORateLimitMBPerSec();
descriptor: ()D
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.doAutoIOThrottle:Z
ifeq 2
1: aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.targetMBPerSec:D
dreturn
2: StackMap locals:
StackMap stack:
ldc Infinity
dreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
public synchronized int getMaxThreadCount();
descriptor: ()I
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.maxThreadCount:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
public synchronized int getMaxMergeCount();
descriptor: ()I
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.maxMergeCount:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
synchronized void removeMergeThread();
descriptor: ()V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=5, locals=3, args_size=1
start local 0 0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 7
3: StackMap locals: java.lang.Thread int
StackMap stack:
aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.mergeThreads:Ljava/util/List;
iload 2
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
aload 1
if_acmpne 6
4: aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.mergeThreads:Ljava/util/List;
iload 2
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
pop
5: return
6: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
7: iload 2
aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.mergeThreads:Ljava/util/List;
invokeinterface java.util.List.size:()I
if_icmplt 3
end local 2 8: getstatic org.apache.lucene.index.ConcurrentMergeScheduler.$assertionsDisabled:Z
ifne 9
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "merge thread "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " was not found"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
9: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
1 10 1 currentThread Ljava/lang/Thread;
2 8 2 i I
public org.apache.lucene.store.Directory wrapForMerge(org.apache.lucene.index.MergePolicy$OneMerge, org.apache.lucene.store.Directory);
descriptor: (Lorg/apache/lucene/index/MergePolicy$OneMerge;Lorg/apache/lucene/store/Directory;)Lorg/apache/lucene/store/Directory;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=3
start local 0 start local 1 start local 2 0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 3
start local 3 1: ldc Lorg/apache/lucene/index/ConcurrentMergeScheduler$MergeThread;
aload 3
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifne 5
2: new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "wrapForMerge should be called from MergeThread. Current thread: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
3: aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
5: StackMap locals: java.lang.Thread
StackMap stack:
aload 3
checkcast org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread
getfield org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.rateLimiter:Lorg/apache/lucene/index/MergeRateLimiter;
astore 4
start local 4 6: new org.apache.lucene.index.ConcurrentMergeScheduler$1
dup
aload 0
aload 2
aload 3
aload 4
invokespecial org.apache.lucene.index.ConcurrentMergeScheduler$1.<init>:(Lorg/apache/lucene/index/ConcurrentMergeScheduler;Lorg/apache/lucene/store/Directory;Ljava/lang/Thread;Lorg/apache/lucene/store/RateLimiter;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
0 7 1 merge Lorg/apache/lucene/index/MergePolicy$OneMerge;
0 7 2 in Lorg/apache/lucene/store/Directory;
1 7 3 mergeThread Ljava/lang/Thread;
6 7 4 rateLimiter Lorg/apache/lucene/store/RateLimiter;
MethodParameters:
Name Flags
merge
in
protected synchronized void updateMergeThreads();
descriptor: ()V
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=10, locals=18, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 9
3: StackMap locals: java.util.List int
StackMap stack:
aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.mergeThreads:Ljava/util/List;
iload 2
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread
astore 3
start local 3 4: aload 3
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.isAlive:()Z
ifne 7
5: aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.mergeThreads:Ljava/util/List;
iload 2
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
pop
6: goto 9
7: StackMap locals: org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread
StackMap stack:
aload 1
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
8: iinc 2 1
end local 3 9: StackMap locals:
StackMap stack:
iload 2
aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.mergeThreads:Ljava/util/List;
invokeinterface java.util.List.size:()I
if_icmplt 3
10: aload 1
invokestatic org.apache.lucene.util.CollectionUtil.timSort:(Ljava/util/List;)V
11: aload 1
invokeinterface java.util.List.size:()I
istore 3
start local 3 12: iconst_0
istore 4
start local 4 13: iload 3
iconst_1
isub
istore 2
goto 19
14: StackMap locals: int int
StackMap stack:
aload 1
iload 2
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread
astore 5
start local 5 15: aload 5
getfield org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.merge:Lorg/apache/lucene/index/MergePolicy$OneMerge;
getfield org.apache.lucene.index.MergePolicy$OneMerge.estimatedMergeBytes:J
l2d
ldc 5.24288E7
dcmpl
ifle 18
16: iconst_1
iload 2
iadd
istore 4
17: goto 20
end local 5 18: StackMap locals:
StackMap stack:
iinc 2 -1
StackMap locals:
StackMap stack:
19: iload 2
ifge 14
20: StackMap locals:
StackMap stack:
invokestatic java.lang.System.nanoTime:()J
lstore 5
start local 5 21: aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.verbose:()Z
ifeq 25
22: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 7
start local 7 23: aload 7
getstatic java.util.Locale.ROOT:Ljava/util/Locale;
ldc "updateMergeThreads ioThrottle=%s targetMBPerSec=%.1f MB/sec"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.doAutoIOThrottle:Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aastore
dup
iconst_1
aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.targetMBPerSec:D
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
invokestatic java.lang.String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
24: goto 26
end local 7 25: StackMap locals: long
StackMap stack:
aconst_null
astore 7
start local 7 26: StackMap locals: java.lang.StringBuilder
StackMap stack:
iconst_0
istore 2
goto 79
27: StackMap locals:
StackMap stack:
aload 1
iload 2
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread
astore 8
start local 8 28: aload 8
getfield org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.merge:Lorg/apache/lucene/index/MergePolicy$OneMerge;
astore 9
start local 9 29: iload 2
iload 4
aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.maxThreadCount:I
isub
if_icmpge 30
iconst_1
goto 31
StackMap locals: org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread org.apache.lucene.index.MergePolicy$OneMerge
StackMap stack:
30: iconst_0
StackMap locals:
StackMap stack: int
31: istore 10
start local 10 32: iload 10
ifeq 35
33: dconst_0
dstore 11
start local 11 34: goto 45
end local 11 StackMap locals: int
StackMap stack:
35: aload 9
getfield org.apache.lucene.index.MergePolicy$OneMerge.maxNumSegments:I
iconst_m1
if_icmpeq 38
36: aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.forceMergeMBPerSec:D
dstore 11
start local 11 37: goto 45
end local 11 StackMap locals:
StackMap stack:
38: aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.doAutoIOThrottle:Z
ifne 41
39: ldc Infinity
dstore 11
start local 11 40: goto 45
end local 11 StackMap locals:
StackMap stack:
41: aload 9
getfield org.apache.lucene.index.MergePolicy$OneMerge.estimatedMergeBytes:J
l2d
ldc 5.24288E7
dcmpg
ifge 44
42: ldc Infinity
dstore 11
start local 11 43: goto 45
end local 11 44: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.targetMBPerSec:D
dstore 11
start local 11 45: StackMap locals: double
StackMap stack:
aload 8
getfield org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.rateLimiter:Lorg/apache/lucene/index/MergeRateLimiter;
astore 13
start local 13 46: aload 13
invokevirtual org.apache.lucene.index.MergeRateLimiter.getMBPerSec:()D
dstore 14
start local 14 47: aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.verbose:()Z
ifeq 77
48: aload 9
getfield org.apache.lucene.index.MergePolicy$OneMerge.mergeStartNS:J
lstore 16
start local 16 49: lload 16
ldc -1
lcmp
ifne 51
50: lload 5
lstore 16
51: StackMap locals: org.apache.lucene.index.MergeRateLimiter double long
StackMap stack:
aload 7
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
52: aload 7
getstatic java.util.Locale.ROOT:Ljava/util/Locale;
ldc "merge thread %s estSize=%.1f MB (written=%.1f MB) runTime=%.1fs (stopped=%.1fs, paused=%.1fs) rate=%s\n"
bipush 7
anewarray java.lang.Object
dup
iconst_0
53: aload 8
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.getName:()Ljava/lang/String;
aastore
dup
iconst_1
54: aload 9
getfield org.apache.lucene.index.MergePolicy$OneMerge.estimatedMergeBytes:J
invokestatic org.apache.lucene.index.ConcurrentMergeScheduler.bytesToMB:(J)D
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
iconst_2
55: aload 13
invokevirtual org.apache.lucene.index.MergeRateLimiter.getTotalBytesWritten:()J
invokestatic org.apache.lucene.index.ConcurrentMergeScheduler.bytesToMB:(J)D
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
iconst_3
56: lload 5
lload 16
lsub
invokestatic org.apache.lucene.index.ConcurrentMergeScheduler.nsToSec:(J)D
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
iconst_4
57: aload 13
invokevirtual org.apache.lucene.index.MergeRateLimiter.getTotalStoppedNS:()J
invokestatic org.apache.lucene.index.ConcurrentMergeScheduler.nsToSec:(J)D
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
iconst_5
58: aload 13
invokevirtual org.apache.lucene.index.MergeRateLimiter.getTotalPausedNS:()J
invokestatic org.apache.lucene.index.ConcurrentMergeScheduler.nsToSec:(J)D
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
bipush 6
59: aload 13
invokevirtual org.apache.lucene.index.MergeRateLimiter.getMBPerSec:()D
invokestatic org.apache.lucene.index.ConcurrentMergeScheduler.rateToString:(D)Ljava/lang/String;
aastore
60: invokestatic java.lang.String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
61: dload 11
dload 14
dcmpl
ifeq 73
62: dload 11
dconst_0
dcmpl
ifne 65
63: aload 7
ldc " now stop"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
64: goto 77
StackMap locals:
StackMap stack:
65: dload 14
dconst_0
dcmpl
ifne 71
66: dload 11
ldc Infinity
dcmpl
ifne 69
67: aload 7
ldc " now resume"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
68: goto 77
69: StackMap locals:
StackMap stack:
aload 7
getstatic java.util.Locale.ROOT:Ljava/util/Locale;
ldc " now resume to %.1f MB/sec"
iconst_1
anewarray java.lang.Object
dup
iconst_0
dload 11
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
invokestatic java.lang.String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
70: goto 77
71: StackMap locals:
StackMap stack:
aload 7
getstatic java.util.Locale.ROOT:Ljava/util/Locale;
ldc " now change from %.1f MB/sec to %.1f MB/sec"
iconst_2
anewarray java.lang.Object
dup
iconst_0
dload 14
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
iconst_1
dload 11
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
invokestatic java.lang.String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
72: goto 77
StackMap locals:
StackMap stack:
73: dload 14
dconst_0
dcmpl
ifne 76
74: aload 7
ldc " leave stopped"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
75: goto 77
76: StackMap locals:
StackMap stack:
aload 7
getstatic java.util.Locale.ROOT:Ljava/util/Locale;
ldc " leave running at %.1f MB/sec"
iconst_1
anewarray java.lang.Object
dup
iconst_0
dload 14
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
invokestatic java.lang.String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 16 77: StackMap locals:
StackMap stack:
aload 13
dload 11
invokevirtual org.apache.lucene.index.MergeRateLimiter.setMBPerSec:(D)V
end local 14 end local 13 end local 11 end local 10 end local 9 end local 8 78: iinc 2 1
StackMap locals: org.apache.lucene.index.ConcurrentMergeScheduler java.util.List int int int long java.lang.StringBuilder
StackMap stack:
79: iload 2
iload 3
if_icmplt 27
80: aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.verbose:()Z
ifeq 82
81: aload 0
aload 7
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.message:(Ljava/lang/String;)V
82: StackMap locals:
StackMap stack:
return
end local 7 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 83 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
1 83 1 activeMerges Ljava/util/List<Lorg/apache/lucene/index/ConcurrentMergeScheduler$MergeThread;>;
2 83 2 threadIdx I
4 9 3 mergeThread Lorg/apache/lucene/index/ConcurrentMergeScheduler$MergeThread;
12 83 3 activeMergeCount I
13 83 4 bigMergeCount I
15 18 5 mergeThread Lorg/apache/lucene/index/ConcurrentMergeScheduler$MergeThread;
21 83 5 now J
23 25 7 message Ljava/lang/StringBuilder;
26 83 7 message Ljava/lang/StringBuilder;
28 78 8 mergeThread Lorg/apache/lucene/index/ConcurrentMergeScheduler$MergeThread;
29 78 9 merge Lorg/apache/lucene/index/MergePolicy$OneMerge;
32 78 10 doPause Z
34 35 11 newMBPerSec D
37 38 11 newMBPerSec D
40 41 11 newMBPerSec D
43 44 11 newMBPerSec D
45 78 11 newMBPerSec D
46 78 13 rateLimiter Lorg/apache/lucene/index/MergeRateLimiter;
47 78 14 curMBPerSec D
49 77 16 mergeStartNS J
private synchronized void initDynamicDefaults(org.apache.lucene.store.Directory);
descriptor: (Lorg/apache/lucene/store/Directory;)V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.maxThreadCount:I
iconst_m1
if_icmpne 10
1: aload 1
invokestatic org.apache.lucene.util.IOUtils.spins:(Lorg/apache/lucene/store/Directory;)Z
istore 2
start local 2 2: ldc "lucene.cms.override_spins"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 3: aload 3
ifnull 7
4: aload 3
invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
istore 2
end local 3 5: goto 7
StackMap locals: org.apache.lucene.index.ConcurrentMergeScheduler org.apache.lucene.store.Directory int
StackMap stack: java.lang.Exception
6: pop
7: StackMap locals:
StackMap stack:
aload 0
iload 2
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.setDefaultMaxMergesAndThreads:(Z)V
8: aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.verbose:()Z
ifeq 10
9: aload 0
new java.lang.StringBuilder
dup
ldc "initDynamicDefaults spins="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
ldc " maxThreadCount="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.maxThreadCount:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " maxMergeCount="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.maxMergeCount:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.message:(Ljava/lang/String;)V
end local 2 10: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
0 11 1 directory Lorg/apache/lucene/store/Directory;
2 10 2 spins Z
3 5 3 value Ljava/lang/String;
Exception table:
from to target type
2 5 6 Class java.lang.Exception
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
directory
private static java.lang.String rateToString(double);
descriptor: (D)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=2, args_size=1
start local 0 0: dload 0
dconst_0
dcmpl
ifne 2
1: ldc "stopped"
areturn
2: StackMap locals:
StackMap stack:
dload 0
ldc Infinity
dcmpl
ifne 4
3: ldc "unlimited"
areturn
4: StackMap locals:
StackMap stack:
getstatic java.util.Locale.ROOT:Ljava/util/Locale;
ldc "%.1f MB/sec"
iconst_1
anewarray java.lang.Object
dup
iconst_0
dload 0
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
invokestatic java.lang.String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 mbPerSec D
MethodParameters:
Name Flags
mbPerSec
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.sync:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
public void sync();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=7, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: StackMap locals: int
StackMap stack:
aconst_null
astore 2
start local 2 2: aload 0
dup
astore 3
monitorenter
3: aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.mergeThreads:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 8
StackMap locals: org.apache.lucene.index.ConcurrentMergeScheduler int org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread org.apache.lucene.index.ConcurrentMergeScheduler top java.util.Iterator
StackMap stack:
4: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread
astore 4
start local 4 5: aload 4
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.isAlive:()Z
ifeq 8
aload 4
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
if_acmpeq 8
6: aload 4
astore 2
7: goto 9
end local 4 8: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
9: StackMap locals: org.apache.lucene.index.ConcurrentMergeScheduler int org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread org.apache.lucene.index.ConcurrentMergeScheduler
StackMap stack:
aload 3
monitorexit
10: goto 13
StackMap locals:
StackMap stack: java.lang.Throwable
11: aload 3
monitorexit
12: athrow
13: StackMap locals:
StackMap stack:
aload 2
ifnull 22
14: aload 2
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.join:()V
15: goto 1
StackMap locals:
StackMap stack: java.lang.InterruptedException
16: pop
17: iconst_1
istore 1
end local 2 18: goto 1
19: StackMap locals: org.apache.lucene.index.ConcurrentMergeScheduler int
StackMap stack: java.lang.Throwable
astore 6
20: iload 1
ifeq 21
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
21: StackMap locals: org.apache.lucene.index.ConcurrentMergeScheduler int top top top top java.lang.Throwable
StackMap stack:
aload 6
athrow
22: StackMap locals: org.apache.lucene.index.ConcurrentMergeScheduler int
StackMap stack:
iload 1
ifeq 23
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
23: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
1 24 1 interrupted Z
2 18 2 toSync Lorg/apache/lucene/index/ConcurrentMergeScheduler$MergeThread;
5 8 4 t Lorg/apache/lucene/index/ConcurrentMergeScheduler$MergeThread;
Exception table:
from to target type
3 10 11 any
11 12 11 any
14 15 16 Class java.lang.InterruptedException
1 19 19 any
public synchronized int mergeThreadCount();
descriptor: ()I
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=5, args_size=1
start local 0 0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.mergeThreads:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 6
StackMap locals: org.apache.lucene.index.ConcurrentMergeScheduler java.lang.Thread int top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread
astore 3
start local 3 4: aload 1
aload 3
if_acmpeq 6
aload 3
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.isAlive:()Z
ifeq 6
aload 3
getfield org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.merge:Lorg/apache/lucene/index/MergePolicy$OneMerge;
invokevirtual org.apache.lucene.index.MergePolicy$OneMerge.isAborted:()Z
ifne 6
5: iinc 2 1
end local 3 6: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
7: iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
1 8 1 currentThread Ljava/lang/Thread;
2 8 2 count I
4 6 3 mergeThread Lorg/apache/lucene/index/ConcurrentMergeScheduler$MergeThread;
void initialize(org.apache.lucene.util.InfoStream, org.apache.lucene.store.Directory);
descriptor: (Lorg/apache/lucene/util/InfoStream;Lorg/apache/lucene/store/Directory;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial org.apache.lucene.index.MergeScheduler.initialize:(Lorg/apache/lucene/util/InfoStream;Lorg/apache/lucene/store/Directory;)V
1: aload 0
aload 2
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.initDynamicDefaults:(Lorg/apache/lucene/store/Directory;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
0 3 1 infoStream Lorg/apache/lucene/util/InfoStream;
0 3 2 directory Lorg/apache/lucene/store/Directory;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
infoStream
directory
public synchronized void merge(org.apache.lucene.index.MergeScheduler$MergeSource, org.apache.lucene.index.MergeTrigger);
descriptor: (Lorg/apache/lucene/index/MergeScheduler$MergeSource;Lorg/apache/lucene/index/MergeTrigger;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 2
getstatic org.apache.lucene.index.MergeTrigger.CLOSING:Lorg/apache/lucene/index/MergeTrigger;
if_acmpne 3
1: aload 0
ldc 10240.0
putfield org.apache.lucene.index.ConcurrentMergeScheduler.targetMBPerSec:D
2: aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.updateMergeThreads:()V
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.verbose:()Z
ifeq 6
4: aload 0
ldc "now merge"
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.message:(Ljava/lang/String;)V
5: aload 0
new java.lang.StringBuilder
dup
ldc " index(source): "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.message:(Ljava/lang/String;)V
6: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.maybeStall:(Lorg/apache/lucene/index/MergeScheduler$MergeSource;)Z
ifne 8
7: goto 30
8: StackMap locals:
StackMap stack:
aload 1
invokeinterface org.apache.lucene.index.MergeScheduler$MergeSource.getNextMerge:()Lorg/apache/lucene/index/MergePolicy$OneMerge;
astore 3
start local 3 9: aload 3
ifnonnull 13
10: aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.verbose:()Z
ifeq 12
11: aload 0
ldc " no more merges pending; now return"
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.message:(Ljava/lang/String;)V
12: StackMap locals: org.apache.lucene.index.MergePolicy$OneMerge
StackMap stack:
return
13: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 14: aload 0
aload 1
aload 3
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.getMergeThread:(Lorg/apache/lucene/index/MergeScheduler$MergeSource;Lorg/apache/lucene/index/MergePolicy$OneMerge;)Lorg/apache/lucene/index/ConcurrentMergeScheduler$MergeThread;
astore 5
start local 5 15: aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.mergeThreads:Ljava/util/List;
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
16: aload 0
aload 5
getfield org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.merge:Lorg/apache/lucene/index/MergePolicy$OneMerge;
aload 5
getfield org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.rateLimiter:Lorg/apache/lucene/index/MergeRateLimiter;
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.updateIOThrottle:(Lorg/apache/lucene/index/MergePolicy$OneMerge;Lorg/apache/lucene/index/MergeRateLimiter;)V
17: aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.verbose:()Z
ifeq 19
18: aload 0
new java.lang.StringBuilder
dup
ldc " launch new thread ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.message:(Ljava/lang/String;)V
19: StackMap locals: int org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread
StackMap stack:
aload 5
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.start:()V
20: aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.updateMergeThreads:()V
21: iconst_1
istore 4
end local 5 22: goto 27
StackMap locals: org.apache.lucene.index.ConcurrentMergeScheduler org.apache.lucene.index.MergeScheduler$MergeSource org.apache.lucene.index.MergeTrigger org.apache.lucene.index.MergePolicy$OneMerge int
StackMap stack: java.lang.Throwable
23: astore 6
24: iload 4
ifne 26
25: aload 1
aload 3
invokeinterface org.apache.lucene.index.MergeScheduler$MergeSource.onMergeFinished:(Lorg/apache/lucene/index/MergePolicy$OneMerge;)V
26: StackMap locals: org.apache.lucene.index.ConcurrentMergeScheduler org.apache.lucene.index.MergeScheduler$MergeSource org.apache.lucene.index.MergeTrigger org.apache.lucene.index.MergePolicy$OneMerge int top java.lang.Throwable
StackMap stack:
aload 6
athrow
27: StackMap locals: org.apache.lucene.index.ConcurrentMergeScheduler org.apache.lucene.index.MergeScheduler$MergeSource org.apache.lucene.index.MergeTrigger org.apache.lucene.index.MergePolicy$OneMerge int
StackMap stack:
iload 4
ifne 6
28: aload 1
aload 3
invokeinterface org.apache.lucene.index.MergeScheduler$MergeSource.onMergeFinished:(Lorg/apache/lucene/index/MergePolicy$OneMerge;)V
end local 4 end local 3 29: goto 6
30: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
0 31 1 mergeSource Lorg/apache/lucene/index/MergeScheduler$MergeSource;
0 31 2 trigger Lorg/apache/lucene/index/MergeTrigger;
9 29 3 merge Lorg/apache/lucene/index/MergePolicy$OneMerge;
14 29 4 success Z
15 22 5 newMergeThread Lorg/apache/lucene/index/ConcurrentMergeScheduler$MergeThread;
Exception table:
from to target type
14 23 23 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mergeSource
trigger
protected synchronized boolean maybeStall(org.apache.lucene.index.MergeScheduler$MergeSource);
descriptor: (Lorg/apache/lucene/index/MergeScheduler$MergeSource;)Z
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: lconst_0
lstore 2
start local 2 1: goto 8
2: StackMap locals: long
StackMap stack:
aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.mergeThreads:Ljava/util/List;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifeq 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.verbose:()Z
ifeq 6
lload 2
lconst_0
lcmp
ifne 6
5: aload 0
ldc " too many merges; stalling..."
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.message:(Ljava/lang/String;)V
6: StackMap locals:
StackMap stack:
invokestatic java.lang.System.currentTimeMillis:()J
lstore 2
7: aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.doStall:()V
8: StackMap locals:
StackMap stack:
aload 1
invokeinterface org.apache.lucene.index.MergeScheduler$MergeSource.hasPendingMerges:()Z
ifeq 9
aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.mergeThreadCount:()I
aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.maxMergeCount:I
if_icmpge 2
9: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.verbose:()Z
ifeq 11
lload 2
lconst_0
lcmp
ifeq 11
10: aload 0
new java.lang.StringBuilder
dup
ldc " stalled for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
invokestatic java.lang.System.currentTimeMillis:()J
lload 2
lsub
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc " msec"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.message:(Ljava/lang/String;)V
11: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
0 12 1 mergeSource Lorg/apache/lucene/index/MergeScheduler$MergeSource;
1 12 2 startStallTime J
MethodParameters:
Name Flags
mergeSource
protected synchronized void doStall();
descriptor: ()V
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
ldc 250
invokevirtual java.lang.Object.wait:(J)V
1: goto 4
StackMap locals:
StackMap stack: java.lang.InterruptedException
2: astore 1
start local 1 3: new org.apache.lucene.util.ThreadInterruptedException
dup
aload 1
invokespecial org.apache.lucene.util.ThreadInterruptedException.<init>:(Ljava/lang/InterruptedException;)V
athrow
end local 1 4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
3 4 1 ie Ljava/lang/InterruptedException;
Exception table:
from to target type
0 1 2 Class java.lang.InterruptedException
protected void doMerge(org.apache.lucene.index.MergeScheduler$MergeSource, org.apache.lucene.index.MergePolicy$OneMerge);
descriptor: (Lorg/apache/lucene/index/MergeScheduler$MergeSource;Lorg/apache/lucene/index/MergePolicy$OneMerge;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
invokeinterface org.apache.lucene.index.MergeScheduler$MergeSource.merge:(Lorg/apache/lucene/index/MergePolicy$OneMerge;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
0 2 1 mergeSource Lorg/apache/lucene/index/MergeScheduler$MergeSource;
0 2 2 merge Lorg/apache/lucene/index/MergePolicy$OneMerge;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mergeSource
merge
protected synchronized org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread getMergeThread(org.apache.lucene.index.MergeScheduler$MergeSource, org.apache.lucene.index.MergePolicy$OneMerge);
descriptor: (Lorg/apache/lucene/index/MergeScheduler$MergeSource;Lorg/apache/lucene/index/MergePolicy$OneMerge;)Lorg/apache/lucene/index/ConcurrentMergeScheduler$MergeThread;
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread
dup
aload 0
aload 1
aload 2
invokespecial org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.<init>:(Lorg/apache/lucene/index/ConcurrentMergeScheduler;Lorg/apache/lucene/index/MergeScheduler$MergeSource;Lorg/apache/lucene/index/MergePolicy$OneMerge;)V
astore 3
start local 3 1: aload 3
iconst_1
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.setDaemon:(Z)V
2: aload 3
new java.lang.StringBuilder
dup
ldc "Lucene Merge Thread #"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
dup
getfield org.apache.lucene.index.ConcurrentMergeScheduler.mergeThreadCount:I
dup_x1
iconst_1
iadd
putfield org.apache.lucene.index.ConcurrentMergeScheduler.mergeThreadCount:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.setName:(Ljava/lang/String;)V
3: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
0 4 1 mergeSource Lorg/apache/lucene/index/MergeScheduler$MergeSource;
0 4 2 merge Lorg/apache/lucene/index/MergePolicy$OneMerge;
1 4 3 thread Lorg/apache/lucene/index/ConcurrentMergeScheduler$MergeThread;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mergeSource
merge
synchronized void runOnMergeFinished(org.apache.lucene.index.MergeScheduler$MergeSource);
descriptor: (Lorg/apache/lucene/index/MergeScheduler$MergeSource;)V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: getstatic org.apache.lucene.index.ConcurrentMergeScheduler.$assertionsDisabled:Z
ifne 1
aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.mergeThreads:Ljava/util/List;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
ldc "caller is not a merge thread"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 0
aload 1
getstatic org.apache.lucene.index.MergeTrigger.MERGE_FINISHED:Lorg/apache/lucene/index/MergeTrigger;
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.merge:(Lorg/apache/lucene/index/MergeScheduler$MergeSource;Lorg/apache/lucene/index/MergeTrigger;)V
2: goto 14
StackMap locals:
StackMap stack: org.apache.lucene.store.AlreadyClosedException
3: pop
4: aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.removeMergeThread:()V
5: aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.updateMergeThreads:()V
6: aload 0
invokevirtual java.lang.Object.notifyAll:()V
goto 17
7: StackMap locals:
StackMap stack: java.io.IOException
astore 2
start local 2 8: new java.io.UncheckedIOException
dup
aload 2
invokespecial java.io.UncheckedIOException.<init>:(Ljava/io/IOException;)V
athrow
end local 2 9: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
10: aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.removeMergeThread:()V
11: aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.updateMergeThreads:()V
12: aload 0
invokevirtual java.lang.Object.notifyAll:()V
13: aload 3
athrow
14: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.removeMergeThread:()V
15: aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.updateMergeThreads:()V
16: aload 0
invokevirtual java.lang.Object.notifyAll:()V
17: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
0 18 1 mergeSource Lorg/apache/lucene/index/MergeScheduler$MergeSource;
8 9 2 ioe Ljava/io/IOException;
Exception table:
from to target type
1 2 3 Class org.apache.lucene.store.AlreadyClosedException
1 2 7 Class java.io.IOException
1 4 9 any
7 9 9 any
MethodParameters:
Name Flags
mergeSource
protected void handleMergeException(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new org.apache.lucene.index.MergePolicy$MergeException
dup
aload 1
invokespecial org.apache.lucene.index.MergePolicy$MergeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
0 1 1 exc Ljava/lang/Throwable;
MethodParameters:
Name Flags
exc
void setSuppressExceptions();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.verbose:()Z
ifeq 2
1: aload 0
ldc "will suppress merge exceptions"
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.message:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.apache.lucene.index.ConcurrentMergeScheduler.suppressExceptions:Z
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
void clearSuppressExceptions();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.verbose:()Z
ifeq 2
1: aload 0
ldc "will not suppress merge exceptions"
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.message:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield org.apache.lucene.index.ConcurrentMergeScheduler.suppressExceptions:Z
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 1
start local 1 1: aload 1
ldc "maxThreadCount="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.maxThreadCount:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
2: aload 1
ldc "maxMergeCount="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.maxMergeCount:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: aload 1
ldc "ioThrottle="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.doAutoIOThrottle:Z
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
pop
4: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
1 5 1 sb Ljava/lang/StringBuilder;
private boolean isBacklog(long, org.apache.lucene.index.MergePolicy$OneMerge);
descriptor: (JLorg/apache/lucene/index/MergePolicy$OneMerge;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=14, args_size=3
start local 0 start local 1 start local 3 0: aload 3
getfield org.apache.lucene.index.MergePolicy$OneMerge.estimatedMergeBytes:J
invokestatic org.apache.lucene.index.ConcurrentMergeScheduler.bytesToMB:(J)D
dstore 4
start local 4 1: aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.mergeThreads:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 12
StackMap locals: org.apache.lucene.index.ConcurrentMergeScheduler long org.apache.lucene.index.MergePolicy$OneMerge double top java.util.Iterator
StackMap stack:
2: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread
astore 6
start local 6 3: aload 6
getfield org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.merge:Lorg/apache/lucene/index/MergePolicy$OneMerge;
getfield org.apache.lucene.index.MergePolicy$OneMerge.mergeStartNS:J
lstore 8
start local 8 4: aload 6
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.isAlive:()Z
ifeq 12
aload 6
getfield org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.merge:Lorg/apache/lucene/index/MergePolicy$OneMerge;
aload 3
if_acmpeq 12
5: lload 8
ldc -1
lcmp
ifeq 12
6: aload 6
getfield org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.merge:Lorg/apache/lucene/index/MergePolicy$OneMerge;
getfield org.apache.lucene.index.MergePolicy$OneMerge.estimatedMergeBytes:J
l2d
ldc 5.24288E7
dcmpl
iflt 12
7: lload 1
lload 8
lsub
invokestatic org.apache.lucene.index.ConcurrentMergeScheduler.nsToSec:(J)D
ldc 3.0
dcmpl
ifle 12
8: aload 6
getfield org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.merge:Lorg/apache/lucene/index/MergePolicy$OneMerge;
getfield org.apache.lucene.index.MergePolicy$OneMerge.estimatedMergeBytes:J
invokestatic org.apache.lucene.index.ConcurrentMergeScheduler.bytesToMB:(J)D
dstore 10
start local 10 9: dload 10
dload 4
ddiv
dstore 12
start local 12 10: dload 12
ldc 0.3
dcmpl
ifle 12
dload 12
ldc 3.0
dcmpg
ifge 12
11: iconst_1
ireturn
end local 12 end local 10 end local 8 end local 6 12: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
13: iconst_0
ireturn
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
0 14 1 now J
0 14 3 merge Lorg/apache/lucene/index/MergePolicy$OneMerge;
1 14 4 mergeMB D
3 12 6 mergeThread Lorg/apache/lucene/index/ConcurrentMergeScheduler$MergeThread;
4 12 8 mergeStartNS J
9 12 10 otherMergeMB D
10 12 12 ratio D
MethodParameters:
Name Flags
now
merge
private synchronized void updateIOThrottle(org.apache.lucene.index.MergePolicy$OneMerge, org.apache.lucene.index.MergeRateLimiter);
descriptor: (Lorg/apache/lucene/index/MergePolicy$OneMerge;Lorg/apache/lucene/index/MergeRateLimiter;)V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=8, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.doAutoIOThrottle:Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 1
getfield org.apache.lucene.index.MergePolicy$OneMerge.estimatedMergeBytes:J
invokestatic org.apache.lucene.index.ConcurrentMergeScheduler.bytesToMB:(J)D
dstore 3
start local 3 3: dload 3
ldc 50.0
dcmpg
ifge 5
4: return
5: StackMap locals: double
StackMap stack:
invokestatic java.lang.System.nanoTime:()J
lstore 5
start local 5 6: aload 0
lload 5
aload 1
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.isBacklog:(JLorg/apache/lucene/index/MergePolicy$OneMerge;)Z
istore 7
start local 7 7: iconst_0
istore 8
start local 8 8: iload 7
ifne 18
9: aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.mergeThreads:Ljava/util/List;
invokeinterface java.util.List.size:()I
aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.maxThreadCount:I
if_icmple 12
10: iconst_1
istore 8
11: goto 18
12: StackMap locals: long int int
StackMap stack:
aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.mergeThreads:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 17
StackMap locals: org.apache.lucene.index.ConcurrentMergeScheduler org.apache.lucene.index.MergePolicy$OneMerge org.apache.lucene.index.MergeRateLimiter double long int int top java.util.Iterator
StackMap stack:
13: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread
astore 9
start local 9 14: aload 0
lload 5
aload 9
getfield org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.merge:Lorg/apache/lucene/index/MergePolicy$OneMerge;
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.isBacklog:(JLorg/apache/lucene/index/MergePolicy$OneMerge;)Z
ifeq 17
15: iconst_1
istore 8
16: goto 18
end local 9 17: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
18: StackMap locals: org.apache.lucene.index.ConcurrentMergeScheduler org.apache.lucene.index.MergePolicy$OneMerge org.apache.lucene.index.MergeRateLimiter double long int int
StackMap stack:
aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.targetMBPerSec:D
dstore 9
start local 9 19: iload 7
ifeq 29
20: aload 0
dup
getfield org.apache.lucene.index.ConcurrentMergeScheduler.targetMBPerSec:D
ldc 1.2
dmul
putfield org.apache.lucene.index.ConcurrentMergeScheduler.targetMBPerSec:D
21: aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.targetMBPerSec:D
ldc 10240.0
dcmpl
ifle 23
22: aload 0
ldc 10240.0
putfield org.apache.lucene.index.ConcurrentMergeScheduler.targetMBPerSec:D
23: StackMap locals: double
StackMap stack:
aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.verbose:()Z
ifeq 43
24: dload 9
aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.targetMBPerSec:D
dcmpl
ifne 27
25: aload 0
getstatic java.util.Locale.ROOT:Ljava/util/Locale;
ldc "io throttle: new merge backlog; leave IO rate at ceiling %.1f MB/sec"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.targetMBPerSec:D
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
invokestatic java.lang.String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.message:(Ljava/lang/String;)V
26: goto 43
27: StackMap locals:
StackMap stack:
aload 0
getstatic java.util.Locale.ROOT:Ljava/util/Locale;
ldc "io throttle: new merge backlog; increase IO rate to %.1f MB/sec"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.targetMBPerSec:D
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
invokestatic java.lang.String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.message:(Ljava/lang/String;)V
28: goto 43
StackMap locals:
StackMap stack:
29: iload 8
ifeq 35
30: aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.verbose:()Z
ifeq 43
31: aload 0
getstatic java.util.Locale.ROOT:Ljava/util/Locale;
ldc "io throttle: current merge backlog; leave IO rate at %.1f MB/sec"
iconst_1
anewarray java.lang.Object
dup
iconst_0
32: aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.targetMBPerSec:D
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
33: invokestatic java.lang.String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.message:(Ljava/lang/String;)V
34: goto 43
35: StackMap locals:
StackMap stack:
aload 0
dup
getfield org.apache.lucene.index.ConcurrentMergeScheduler.targetMBPerSec:D
ldc 1.1
ddiv
putfield org.apache.lucene.index.ConcurrentMergeScheduler.targetMBPerSec:D
36: aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.targetMBPerSec:D
ldc 5.0
dcmpg
ifge 38
37: aload 0
ldc 5.0
putfield org.apache.lucene.index.ConcurrentMergeScheduler.targetMBPerSec:D
38: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.verbose:()Z
ifeq 43
39: dload 9
aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.targetMBPerSec:D
dcmpl
ifne 42
40: aload 0
getstatic java.util.Locale.ROOT:Ljava/util/Locale;
ldc "io throttle: no merge backlog; leave IO rate at floor %.1f MB/sec"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.targetMBPerSec:D
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
invokestatic java.lang.String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.message:(Ljava/lang/String;)V
41: goto 43
42: StackMap locals:
StackMap stack:
aload 0
getstatic java.util.Locale.ROOT:Ljava/util/Locale;
ldc "io throttle: no merge backlog; decrease IO rate to %.1f MB/sec"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.targetMBPerSec:D
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
invokestatic java.lang.String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.message:(Ljava/lang/String;)V
43: StackMap locals:
StackMap stack:
aload 1
getfield org.apache.lucene.index.MergePolicy$OneMerge.maxNumSegments:I
iconst_m1
if_icmpeq 46
44: aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.forceMergeMBPerSec:D
dstore 11
start local 11 45: goto 47
end local 11 46: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.lucene.index.ConcurrentMergeScheduler.targetMBPerSec:D
dstore 11
start local 11 47: StackMap locals: double
StackMap stack:
aload 2
dload 11
invokevirtual org.apache.lucene.index.MergeRateLimiter.setMBPerSec:(D)V
48: aload 0
invokevirtual org.apache.lucene.index.ConcurrentMergeScheduler.targetMBPerSecChanged:()V
49: return
end local 11 end local 9 end local 8 end local 7 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 50 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
0 50 1 newMerge Lorg/apache/lucene/index/MergePolicy$OneMerge;
0 50 2 rateLimiter Lorg/apache/lucene/index/MergeRateLimiter;
3 50 3 mergeMB D
6 50 5 now J
7 50 7 newBacklog Z
8 50 8 curBacklog Z
14 17 9 mergeThread Lorg/apache/lucene/index/ConcurrentMergeScheduler$MergeThread;
19 50 9 curMBPerSec D
45 46 11 rate D
47 50 11 rate D
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
newMerge
rateLimiter
protected void targetMBPerSecChanged();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/lucene/index/ConcurrentMergeScheduler;
private static double nsToSec(long);
descriptor: (J)D
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: lload 0
l2d
ldc 1.0E9
ddiv
dreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 ns J
MethodParameters:
Name Flags
ns
private static double bytesToMB(long);
descriptor: (J)D
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: lload 0
l2d
ldc 1024.0
ddiv
ldc 1024.0
ddiv
dreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 bytes J
MethodParameters:
Name Flags
bytes
}
SourceFile: "ConcurrentMergeScheduler.java"
NestMembers:
org.apache.lucene.index.ConcurrentMergeScheduler$1 org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread
InnerClasses:
org.apache.lucene.index.ConcurrentMergeScheduler$1
protected MergeThread = org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread of org.apache.lucene.index.ConcurrentMergeScheduler
public MergeException = org.apache.lucene.index.MergePolicy$MergeException of org.apache.lucene.index.MergePolicy
public OneMerge = org.apache.lucene.index.MergePolicy$OneMerge of org.apache.lucene.index.MergePolicy
public abstract MergeSource = org.apache.lucene.index.MergeScheduler$MergeSource of org.apache.lucene.index.MergeScheduler