public class org.apache.cassandra.db.partitions.AtomicBTreePartition extends org.apache.cassandra.db.partitions.AbstractBTreePartition
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.db.partitions.AtomicBTreePartition
super_class: org.apache.cassandra.db.partitions.AbstractBTreePartition
{
public static final long EMPTY_SIZE;
descriptor: J
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
private static final int TRACKER_NEVER_WASTED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int TRACKER_PESSIMISTIC_LOCKING;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2147483647
private static final int ALLOCATION_GRANULARITY_BYTES;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1024
private static final long EXCESS_WASTE_BYTES;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 10485760
private static final int EXCESS_WASTE_OFFSET;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 10240
private static final int CLOCK_SHIFT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 17
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<org.apache.cassandra.db.partitions.AtomicBTreePartition> wasteTrackerUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lorg/apache/cassandra/db/partitions/AtomicBTreePartition;>;
private static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<org.apache.cassandra.db.partitions.AtomicBTreePartition, org.apache.cassandra.db.partitions.AbstractBTreePartition$Holder> refUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater<Lorg/apache/cassandra/db/partitions/AtomicBTreePartition;Lorg/apache/cassandra/db/partitions/AbstractBTreePartition$Holder;>;
private volatile int wasteTracker;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final org.apache.cassandra.utils.memory.MemtableAllocator allocator;
descriptor: Lorg/apache/cassandra/utils/memory/MemtableAllocator;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile org.apache.cassandra.db.partitions.AbstractBTreePartition$Holder ref;
descriptor: Lorg/apache/cassandra/db/partitions/AbstractBTreePartition$Holder;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=0, args_size=0
0: new org.apache.cassandra.db.partitions.AtomicBTreePartition
dup
ldc "keyspace"
ldc "table"
invokestatic org.apache.cassandra.config.CFMetaData.createFake:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/config/CFMetaData;
1: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getPartitioner:()Lorg/apache/cassandra/dht/IPartitioner;
iconst_1
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
invokeinterface org.apache.cassandra.dht.IPartitioner.decorateKey:(Ljava/nio/ByteBuffer;)Lorg/apache/cassandra/db/DecoratedKey;
2: aconst_null
3: invokespecial org.apache.cassandra.db.partitions.AtomicBTreePartition.<init>:(Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/utils/memory/MemtableAllocator;)V
invokestatic org.apache.cassandra.utils.ObjectSizes.measure:(Ljava/lang/Object;)J
putstatic org.apache.cassandra.db.partitions.AtomicBTreePartition.EMPTY_SIZE:J
4: ldc Lorg/apache/cassandra/db/partitions/AtomicBTreePartition;
ldc "wasteTracker"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
putstatic org.apache.cassandra.db.partitions.AtomicBTreePartition.wasteTrackerUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
5: ldc Lorg/apache/cassandra/db/partitions/AtomicBTreePartition;
ldc Lorg/apache/cassandra/db/partitions/AbstractBTreePartition$Holder;
ldc "ref"
invokestatic java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
putstatic org.apache.cassandra.db.partitions.AtomicBTreePartition.refUpdater:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.apache.cassandra.config.CFMetaData, org.apache.cassandra.db.DecoratedKey, org.apache.cassandra.utils.memory.MemtableAllocator);
descriptor: (Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/utils/memory/MemtableAllocator;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
invokespecial org.apache.cassandra.db.partitions.AbstractBTreePartition.<init>:(Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/db/DecoratedKey;)V
1: aload 0
iconst_0
putfield org.apache.cassandra.db.partitions.AtomicBTreePartition.wasteTracker:I
2: aload 0
aload 3
putfield org.apache.cassandra.db.partitions.AtomicBTreePartition.allocator:Lorg/apache/cassandra/utils/memory/MemtableAllocator;
3: aload 0
getstatic org.apache.cassandra.db.partitions.AtomicBTreePartition.EMPTY:Lorg/apache/cassandra/db/partitions/AbstractBTreePartition$Holder;
putfield org.apache.cassandra.db.partitions.AtomicBTreePartition.ref:Lorg/apache/cassandra/db/partitions/AbstractBTreePartition$Holder;
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/db/partitions/AtomicBTreePartition;
0 5 1 metadata Lorg/apache/cassandra/config/CFMetaData;
0 5 2 partitionKey Lorg/apache/cassandra/db/DecoratedKey;
0 5 3 allocator Lorg/apache/cassandra/utils/memory/MemtableAllocator;
MethodParameters:
Name Flags
metadata
partitionKey
allocator
protected org.apache.cassandra.db.partitions.AbstractBTreePartition$Holder holder();
descriptor: ()Lorg/apache/cassandra/db/partitions/AbstractBTreePartition$Holder;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.db.partitions.AtomicBTreePartition.ref:Lorg/apache/cassandra/db/partitions/AbstractBTreePartition$Holder;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/db/partitions/AtomicBTreePartition;
protected boolean canHaveShadowedData();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/db/partitions/AtomicBTreePartition;
public long[] addAllWithSizeDelta(org.apache.cassandra.db.partitions.PartitionUpdate, org.apache.cassandra.utils.concurrent.OpOrder$Group, org.apache.cassandra.index.transactions.UpdateTransaction);
descriptor: (Lorg/apache/cassandra/db/partitions/PartitionUpdate;Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;Lorg/apache/cassandra/index/transactions/UpdateTransaction;)[J
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=18, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new org.apache.cassandra.db.partitions.AtomicBTreePartition$RowUpdater
dup
aload 0
aload 0
getfield org.apache.cassandra.db.partitions.AtomicBTreePartition.allocator:Lorg/apache/cassandra/utils/memory/MemtableAllocator;
aload 2
aload 3
invokespecial org.apache.cassandra.db.partitions.AtomicBTreePartition$RowUpdater.<init>:(Lorg/apache/cassandra/db/partitions/AtomicBTreePartition;Lorg/apache/cassandra/utils/memory/MemtableAllocator;Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;Lorg/apache/cassandra/index/transactions/UpdateTransaction;)V
astore 4
start local 4 1: aconst_null
astore 5
start local 5 2: iconst_0
istore 6
start local 6 3: aload 0
invokevirtual org.apache.cassandra.db.partitions.AtomicBTreePartition.usePessimisticLocking:()Z
ifeq 6
4: aload 0
invokestatic org.apache.cassandra.utils.concurrent.Locks.monitorEnterUnsafe:(Ljava/lang/Object;)V
5: iconst_1
istore 6
6: StackMap locals: org.apache.cassandra.db.partitions.AtomicBTreePartition$RowUpdater org.apache.cassandra.db.DeletionInfo int
StackMap stack:
aload 3
invokeinterface org.apache.cassandra.index.transactions.UpdateTransaction.start:()V
7: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.db.partitions.AtomicBTreePartition.ref:Lorg/apache/cassandra/db/partitions/AbstractBTreePartition$Holder;
astore 7
start local 7 8: aload 4
aload 7
putfield org.apache.cassandra.db.partitions.AtomicBTreePartition$RowUpdater.ref:Lorg/apache/cassandra/db/partitions/AbstractBTreePartition$Holder;
9: aload 4
invokevirtual org.apache.cassandra.db.partitions.AtomicBTreePartition$RowUpdater.reset:()V
10: aload 1
invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.deletionInfo:()Lorg/apache/cassandra/db/DeletionInfo;
invokeinterface org.apache.cassandra.db.DeletionInfo.getPartitionDeletion:()Lorg/apache/cassandra/db/DeletionTime;
invokevirtual org.apache.cassandra.db.DeletionTime.isLive:()Z
ifne 12
11: aload 3
aload 1
invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.deletionInfo:()Lorg/apache/cassandra/db/DeletionInfo;
invokeinterface org.apache.cassandra.db.DeletionInfo.getPartitionDeletion:()Lorg/apache/cassandra/db/DeletionTime;
invokeinterface org.apache.cassandra.index.transactions.UpdateTransaction.onPartitionDeletion:(Lorg/apache/cassandra/db/DeletionTime;)V
12: StackMap locals: org.apache.cassandra.db.partitions.AbstractBTreePartition$Holder
StackMap stack:
aload 1
invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.deletionInfo:()Lorg/apache/cassandra/db/DeletionInfo;
invokeinterface org.apache.cassandra.db.DeletionInfo.hasRanges:()Z
ifeq 14
13: aload 1
invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.deletionInfo:()Lorg/apache/cassandra/db/DeletionInfo;
iconst_0
invokeinterface org.apache.cassandra.db.DeletionInfo.rangeIterator:(Z)Ljava/util/Iterator;
aload 3
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic accept(Lorg/apache/cassandra/index/transactions/UpdateTransaction;)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/index/transactions/UpdateTransaction.onRangeTombstone(Lorg/apache/cassandra/db/RangeTombstone;)V (9 itf)
(Lorg/apache/cassandra/db/RangeTombstone;)V
invokeinterface java.util.Iterator.forEachRemaining:(Ljava/util/function/Consumer;)V
14: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.deletionInfo:()Lorg/apache/cassandra/db/DeletionInfo;
aload 7
getfield org.apache.cassandra.db.partitions.AbstractBTreePartition$Holder.deletionInfo:Lorg/apache/cassandra/db/DeletionInfo;
invokeinterface org.apache.cassandra.db.DeletionInfo.mayModify:(Lorg/apache/cassandra/db/DeletionInfo;)Z
ifeq 20
15: aload 5
ifnonnull 17
16: aload 1
invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.deletionInfo:()Lorg/apache/cassandra/db/DeletionInfo;
getstatic org.apache.cassandra.utils.memory.HeapAllocator.instance:Lorg/apache/cassandra/utils/memory/HeapAllocator;
invokeinterface org.apache.cassandra.db.DeletionInfo.copy:(Lorg/apache/cassandra/utils/memory/AbstractAllocator;)Lorg/apache/cassandra/db/DeletionInfo;
astore 5
17: StackMap locals:
StackMap stack:
aload 7
getfield org.apache.cassandra.db.partitions.AbstractBTreePartition$Holder.deletionInfo:Lorg/apache/cassandra/db/DeletionInfo;
invokeinterface org.apache.cassandra.db.DeletionInfo.mutableCopy:()Lorg/apache/cassandra/db/MutableDeletionInfo;
aload 5
invokevirtual org.apache.cassandra.db.MutableDeletionInfo.add:(Lorg/apache/cassandra/db/DeletionInfo;)Lorg/apache/cassandra/db/DeletionInfo;
astore 9
start local 9 18: aload 4
aload 9
invokeinterface org.apache.cassandra.db.DeletionInfo.unsharedHeapSize:()J
aload 7
getfield org.apache.cassandra.db.partitions.AbstractBTreePartition$Holder.deletionInfo:Lorg/apache/cassandra/db/DeletionInfo;
invokeinterface org.apache.cassandra.db.DeletionInfo.unsharedHeapSize:()J
lsub
invokevirtual org.apache.cassandra.db.partitions.AtomicBTreePartition$RowUpdater.allocated:(J)V
19: goto 21
end local 9 20: StackMap locals:
StackMap stack:
aload 7
getfield org.apache.cassandra.db.partitions.AbstractBTreePartition$Holder.deletionInfo:Lorg/apache/cassandra/db/DeletionInfo;
astore 9
start local 9 21: StackMap locals: org.apache.cassandra.db.partitions.AtomicBTreePartition org.apache.cassandra.db.partitions.PartitionUpdate org.apache.cassandra.utils.concurrent.OpOrder$Group org.apache.cassandra.index.transactions.UpdateTransaction org.apache.cassandra.db.partitions.AtomicBTreePartition$RowUpdater org.apache.cassandra.db.DeletionInfo int org.apache.cassandra.db.partitions.AbstractBTreePartition$Holder top org.apache.cassandra.db.DeletionInfo
StackMap stack:
aload 1
invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.columns:()Lorg/apache/cassandra/db/PartitionColumns;
aload 7
getfield org.apache.cassandra.db.partitions.AbstractBTreePartition$Holder.columns:Lorg/apache/cassandra/db/PartitionColumns;
invokevirtual org.apache.cassandra.db.PartitionColumns.mergeTo:(Lorg/apache/cassandra/db/PartitionColumns;)Lorg/apache/cassandra/db/PartitionColumns;
astore 10
start local 10 22: aload 1
invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.staticRow:()Lorg/apache/cassandra/db/rows/Row;
astore 11
start local 11 23: aload 11
invokeinterface org.apache.cassandra.db.rows.Row.isEmpty:()Z
ifeq 25
24: aload 7
getfield org.apache.cassandra.db.partitions.AbstractBTreePartition$Holder.staticRow:Lorg/apache/cassandra/db/rows/Row;
goto 27
25: StackMap locals: org.apache.cassandra.db.PartitionColumns org.apache.cassandra.db.rows.Row
StackMap stack:
aload 7
getfield org.apache.cassandra.db.partitions.AbstractBTreePartition$Holder.staticRow:Lorg/apache/cassandra/db/rows/Row;
invokeinterface org.apache.cassandra.db.rows.Row.isEmpty:()Z
ifeq 26
aload 4
aload 11
invokevirtual org.apache.cassandra.db.partitions.AtomicBTreePartition$RowUpdater.apply:(Lorg/apache/cassandra/db/rows/Row;)Lorg/apache/cassandra/db/rows/Row;
goto 27
StackMap locals:
StackMap stack:
26: aload 4
aload 7
getfield org.apache.cassandra.db.partitions.AbstractBTreePartition$Holder.staticRow:Lorg/apache/cassandra/db/rows/Row;
aload 11
invokevirtual org.apache.cassandra.db.partitions.AtomicBTreePartition$RowUpdater.apply:(Lorg/apache/cassandra/db/rows/Row;Lorg/apache/cassandra/db/rows/Row;)Lorg/apache/cassandra/db/rows/Row;
27: StackMap locals:
StackMap stack: org.apache.cassandra.db.rows.Row
astore 12
start local 12 28: aload 7
getfield org.apache.cassandra.db.partitions.AbstractBTreePartition$Holder.tree:[Ljava/lang/Object;
aload 1
invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.metadata:()Lorg/apache/cassandra/config/CFMetaData;
getfield org.apache.cassandra.config.CFMetaData.comparator:Lorg/apache/cassandra/db/ClusteringComparator;
aload 1
aload 1
invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.rowCount:()I
aload 4
invokestatic org.apache.cassandra.utils.btree.BTree.update:([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Iterable;ILorg/apache/cassandra/utils/btree/UpdateFunction;)[Ljava/lang/Object;
astore 13
start local 13 29: aload 7
getfield org.apache.cassandra.db.partitions.AbstractBTreePartition$Holder.stats:Lorg/apache/cassandra/db/rows/EncodingStats;
aload 1
invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.stats:()Lorg/apache/cassandra/db/rows/EncodingStats;
invokevirtual org.apache.cassandra.db.rows.EncodingStats.mergeWith:(Lorg/apache/cassandra/db/rows/EncodingStats;)Lorg/apache/cassandra/db/rows/EncodingStats;
astore 14
start local 14 30: aload 13
ifnull 37
getstatic org.apache.cassandra.db.partitions.AtomicBTreePartition.refUpdater:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
aload 0
aload 7
new org.apache.cassandra.db.partitions.AbstractBTreePartition$Holder
dup
aload 10
aload 13
aload 9
aload 12
aload 14
invokespecial org.apache.cassandra.db.partitions.AbstractBTreePartition$Holder.<init>:(Lorg/apache/cassandra/db/PartitionColumns;[Ljava/lang/Object;Lorg/apache/cassandra/db/DeletionInfo;Lorg/apache/cassandra/db/rows/Row;Lorg/apache/cassandra/db/rows/EncodingStats;)V
invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 37
31: aload 4
invokevirtual org.apache.cassandra.db.partitions.AtomicBTreePartition$RowUpdater.finish:()V
32: iconst_2
newarray 11
dup
iconst_0
aload 4
getfield org.apache.cassandra.db.partitions.AtomicBTreePartition$RowUpdater.dataSize:J
lastore
dup
iconst_1
aload 4
getfield org.apache.cassandra.db.partitions.AtomicBTreePartition$RowUpdater.colUpdateTimeDelta:J
lastore
astore 17
33: aload 3
invokeinterface org.apache.cassandra.index.transactions.UpdateTransaction.commit:()V
34: iload 6
ifeq 36
35: aload 0
invokestatic org.apache.cassandra.utils.concurrent.Locks.monitorExitUnsafe:(Ljava/lang/Object;)V
36: StackMap locals: org.apache.cassandra.db.partitions.AtomicBTreePartition org.apache.cassandra.db.partitions.PartitionUpdate org.apache.cassandra.utils.concurrent.OpOrder$Group org.apache.cassandra.index.transactions.UpdateTransaction org.apache.cassandra.db.partitions.AtomicBTreePartition$RowUpdater org.apache.cassandra.db.DeletionInfo int org.apache.cassandra.db.partitions.AbstractBTreePartition$Holder top org.apache.cassandra.db.DeletionInfo org.apache.cassandra.db.PartitionColumns org.apache.cassandra.db.rows.Row org.apache.cassandra.db.rows.Row java.lang.Object[] org.apache.cassandra.db.rows.EncodingStats top top long[]
StackMap stack:
aload 17
areturn
37: StackMap locals: org.apache.cassandra.db.partitions.AtomicBTreePartition org.apache.cassandra.db.partitions.PartitionUpdate org.apache.cassandra.utils.concurrent.OpOrder$Group org.apache.cassandra.index.transactions.UpdateTransaction org.apache.cassandra.db.partitions.AtomicBTreePartition$RowUpdater org.apache.cassandra.db.DeletionInfo int org.apache.cassandra.db.partitions.AbstractBTreePartition$Holder top org.apache.cassandra.db.DeletionInfo org.apache.cassandra.db.PartitionColumns org.apache.cassandra.db.rows.Row org.apache.cassandra.db.rows.Row java.lang.Object[] org.apache.cassandra.db.rows.EncodingStats
StackMap stack:
iload 6
ifne 7
38: aload 0
invokevirtual org.apache.cassandra.db.partitions.AtomicBTreePartition.usePessimisticLocking:()Z
istore 15
start local 15 39: iload 15
ifne 41
40: aload 0
aload 4
getfield org.apache.cassandra.db.partitions.AtomicBTreePartition$RowUpdater.heapSize:J
invokevirtual org.apache.cassandra.db.partitions.AtomicBTreePartition.updateWastedAllocationTracker:(J)Z
istore 15
41: StackMap locals: int
StackMap stack:
iload 15
ifeq 7
42: aload 0
invokestatic org.apache.cassandra.utils.concurrent.Locks.monitorEnterUnsafe:(Ljava/lang/Object;)V
43: iconst_1
istore 6
end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 7 44: goto 7
45: StackMap locals: org.apache.cassandra.db.partitions.AtomicBTreePartition org.apache.cassandra.db.partitions.PartitionUpdate org.apache.cassandra.utils.concurrent.OpOrder$Group org.apache.cassandra.index.transactions.UpdateTransaction org.apache.cassandra.db.partitions.AtomicBTreePartition$RowUpdater org.apache.cassandra.db.DeletionInfo int
StackMap stack: java.lang.Throwable
astore 16
46: aload 3
invokeinterface org.apache.cassandra.index.transactions.UpdateTransaction.commit:()V
47: iload 6
ifeq 49
48: aload 0
invokestatic org.apache.cassandra.utils.concurrent.Locks.monitorExitUnsafe:(Ljava/lang/Object;)V
49: StackMap locals: org.apache.cassandra.db.partitions.AtomicBTreePartition org.apache.cassandra.db.partitions.PartitionUpdate org.apache.cassandra.utils.concurrent.OpOrder$Group org.apache.cassandra.index.transactions.UpdateTransaction org.apache.cassandra.db.partitions.AtomicBTreePartition$RowUpdater org.apache.cassandra.db.DeletionInfo int top top top top top top top top top java.lang.Throwable
StackMap stack:
aload 16
athrow
end local 6 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 50 0 this Lorg/apache/cassandra/db/partitions/AtomicBTreePartition;
0 50 1 update Lorg/apache/cassandra/db/partitions/PartitionUpdate;
0 50 2 writeOp Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
0 50 3 indexer Lorg/apache/cassandra/index/transactions/UpdateTransaction;
1 50 4 updater Lorg/apache/cassandra/db/partitions/AtomicBTreePartition$RowUpdater;
2 50 5 inputDeletionInfoCopy Lorg/apache/cassandra/db/DeletionInfo;
3 50 6 monitorOwned Z
8 44 7 current Lorg/apache/cassandra/db/partitions/AbstractBTreePartition$Holder;
18 20 9 deletionInfo Lorg/apache/cassandra/db/DeletionInfo;
21 44 9 deletionInfo Lorg/apache/cassandra/db/DeletionInfo;
22 44 10 columns Lorg/apache/cassandra/db/PartitionColumns;
23 44 11 newStatic Lorg/apache/cassandra/db/rows/Row;
28 44 12 staticRow Lorg/apache/cassandra/db/rows/Row;
29 44 13 tree [Ljava/lang/Object;
30 44 14 newStats Lorg/apache/cassandra/db/rows/EncodingStats;
39 44 15 shouldLock Z
Exception table:
from to target type
3 33 45 any
37 45 45 any
MethodParameters:
Name Flags
update final
writeOp
indexer
public org.apache.cassandra.db.DeletionInfo deletionInfo();
descriptor: ()Lorg/apache/cassandra/db/DeletionInfo;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.db.partitions.AtomicBTreePartition.allocator:Lorg/apache/cassandra/utils/memory/MemtableAllocator;
invokevirtual org.apache.cassandra.utils.memory.MemtableAllocator.ensureOnHeap:()Lorg/apache/cassandra/utils/memory/EnsureOnHeap;
aload 0
invokespecial org.apache.cassandra.db.partitions.AbstractBTreePartition.deletionInfo:()Lorg/apache/cassandra/db/DeletionInfo;
invokevirtual org.apache.cassandra.utils.memory.EnsureOnHeap.applyToDeletionInfo:(Lorg/apache/cassandra/db/DeletionInfo;)Lorg/apache/cassandra/db/DeletionInfo;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/db/partitions/AtomicBTreePartition;
public org.apache.cassandra.db.rows.Row staticRow();
descriptor: ()Lorg/apache/cassandra/db/rows/Row;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.db.partitions.AtomicBTreePartition.allocator:Lorg/apache/cassandra/utils/memory/MemtableAllocator;
invokevirtual org.apache.cassandra.utils.memory.MemtableAllocator.ensureOnHeap:()Lorg/apache/cassandra/utils/memory/EnsureOnHeap;
aload 0
invokespecial org.apache.cassandra.db.partitions.AbstractBTreePartition.staticRow:()Lorg/apache/cassandra/db/rows/Row;
invokevirtual org.apache.cassandra.utils.memory.EnsureOnHeap.applyToStatic:(Lorg/apache/cassandra/db/rows/Row;)Lorg/apache/cassandra/db/rows/Row;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/db/partitions/AtomicBTreePartition;
public org.apache.cassandra.db.DecoratedKey partitionKey();
descriptor: ()Lorg/apache/cassandra/db/DecoratedKey;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.db.partitions.AtomicBTreePartition.allocator:Lorg/apache/cassandra/utils/memory/MemtableAllocator;
invokevirtual org.apache.cassandra.utils.memory.MemtableAllocator.ensureOnHeap:()Lorg/apache/cassandra/utils/memory/EnsureOnHeap;
aload 0
invokespecial org.apache.cassandra.db.partitions.AbstractBTreePartition.partitionKey:()Lorg/apache/cassandra/db/DecoratedKey;
invokevirtual org.apache.cassandra.utils.memory.EnsureOnHeap.applyToPartitionKey:(Lorg/apache/cassandra/db/DecoratedKey;)Lorg/apache/cassandra/db/DecoratedKey;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/db/partitions/AtomicBTreePartition;
public org.apache.cassandra.db.rows.Row getRow(org.apache.cassandra.db.Clustering);
descriptor: (Lorg/apache/cassandra/db/Clustering;)Lorg/apache/cassandra/db/rows/Row;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.db.partitions.AtomicBTreePartition.allocator:Lorg/apache/cassandra/utils/memory/MemtableAllocator;
invokevirtual org.apache.cassandra.utils.memory.MemtableAllocator.ensureOnHeap:()Lorg/apache/cassandra/utils/memory/EnsureOnHeap;
aload 0
aload 1
invokespecial org.apache.cassandra.db.partitions.AbstractBTreePartition.getRow:(Lorg/apache/cassandra/db/Clustering;)Lorg/apache/cassandra/db/rows/Row;
invokevirtual org.apache.cassandra.utils.memory.EnsureOnHeap.applyToRow:(Lorg/apache/cassandra/db/rows/Row;)Lorg/apache/cassandra/db/rows/Row;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/db/partitions/AtomicBTreePartition;
0 1 1 clustering Lorg/apache/cassandra/db/Clustering;
MethodParameters:
Name Flags
clustering
public org.apache.cassandra.db.rows.Row lastRow();
descriptor: ()Lorg/apache/cassandra/db/rows/Row;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.db.partitions.AtomicBTreePartition.allocator:Lorg/apache/cassandra/utils/memory/MemtableAllocator;
invokevirtual org.apache.cassandra.utils.memory.MemtableAllocator.ensureOnHeap:()Lorg/apache/cassandra/utils/memory/EnsureOnHeap;
aload 0
invokespecial org.apache.cassandra.db.partitions.AbstractBTreePartition.lastRow:()Lorg/apache/cassandra/db/rows/Row;
invokevirtual org.apache.cassandra.utils.memory.EnsureOnHeap.applyToRow:(Lorg/apache/cassandra/db/rows/Row;)Lorg/apache/cassandra/db/rows/Row;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/db/partitions/AtomicBTreePartition;
public org.apache.cassandra.utils.SearchIterator<org.apache.cassandra.db.Clustering, org.apache.cassandra.db.rows.Row> searchIterator(org.apache.cassandra.db.filter.ColumnFilter, boolean);
descriptor: (Lorg/apache/cassandra/db/filter/ColumnFilter;Z)Lorg/apache/cassandra/utils/SearchIterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.apache.cassandra.db.partitions.AtomicBTreePartition.allocator:Lorg/apache/cassandra/utils/memory/MemtableAllocator;
invokevirtual org.apache.cassandra.utils.memory.MemtableAllocator.ensureOnHeap:()Lorg/apache/cassandra/utils/memory/EnsureOnHeap;
aload 0
aload 1
iload 2
invokespecial org.apache.cassandra.db.partitions.AbstractBTreePartition.searchIterator:(Lorg/apache/cassandra/db/filter/ColumnFilter;Z)Lorg/apache/cassandra/utils/SearchIterator;
invokevirtual org.apache.cassandra.utils.memory.EnsureOnHeap.applyToPartition:(Lorg/apache/cassandra/utils/SearchIterator;)Lorg/apache/cassandra/utils/SearchIterator;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/db/partitions/AtomicBTreePartition;
0 1 1 columns Lorg/apache/cassandra/db/filter/ColumnFilter;
0 1 2 reversed Z
Signature: (Lorg/apache/cassandra/db/filter/ColumnFilter;Z)Lorg/apache/cassandra/utils/SearchIterator<Lorg/apache/cassandra/db/Clustering;Lorg/apache/cassandra/db/rows/Row;>;
MethodParameters:
Name Flags
columns
reversed
public org.apache.cassandra.db.rows.UnfilteredRowIterator unfilteredIterator(org.apache.cassandra.db.filter.ColumnFilter, org.apache.cassandra.db.Slices, boolean);
descriptor: (Lorg/apache/cassandra/db/filter/ColumnFilter;Lorg/apache/cassandra/db/Slices;Z)Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.apache.cassandra.db.partitions.AtomicBTreePartition.allocator:Lorg/apache/cassandra/utils/memory/MemtableAllocator;
invokevirtual org.apache.cassandra.utils.memory.MemtableAllocator.ensureOnHeap:()Lorg/apache/cassandra/utils/memory/EnsureOnHeap;
aload 0
aload 1
aload 2
iload 3
invokespecial org.apache.cassandra.db.partitions.AbstractBTreePartition.unfilteredIterator:(Lorg/apache/cassandra/db/filter/ColumnFilter;Lorg/apache/cassandra/db/Slices;Z)Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;
invokevirtual org.apache.cassandra.utils.memory.EnsureOnHeap.applyToPartition:(Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;)Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/db/partitions/AtomicBTreePartition;
0 1 1 selection Lorg/apache/cassandra/db/filter/ColumnFilter;
0 1 2 slices Lorg/apache/cassandra/db/Slices;
0 1 3 reversed Z
MethodParameters:
Name Flags
selection
slices
reversed
public org.apache.cassandra.db.rows.UnfilteredRowIterator unfilteredIterator();
descriptor: ()Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.db.partitions.AtomicBTreePartition.allocator:Lorg/apache/cassandra/utils/memory/MemtableAllocator;
invokevirtual org.apache.cassandra.utils.memory.MemtableAllocator.ensureOnHeap:()Lorg/apache/cassandra/utils/memory/EnsureOnHeap;
aload 0
invokespecial org.apache.cassandra.db.partitions.AbstractBTreePartition.unfilteredIterator:()Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;
invokevirtual org.apache.cassandra.utils.memory.EnsureOnHeap.applyToPartition:(Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;)Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/db/partitions/AtomicBTreePartition;
public org.apache.cassandra.db.rows.UnfilteredRowIterator unfilteredIterator(org.apache.cassandra.db.partitions.AbstractBTreePartition$Holder, org.apache.cassandra.db.filter.ColumnFilter, org.apache.cassandra.db.Slices, boolean);
descriptor: (Lorg/apache/cassandra/db/partitions/AbstractBTreePartition$Holder;Lorg/apache/cassandra/db/filter/ColumnFilter;Lorg/apache/cassandra/db/Slices;Z)Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield org.apache.cassandra.db.partitions.AtomicBTreePartition.allocator:Lorg/apache/cassandra/utils/memory/MemtableAllocator;
invokevirtual org.apache.cassandra.utils.memory.MemtableAllocator.ensureOnHeap:()Lorg/apache/cassandra/utils/memory/EnsureOnHeap;
aload 0
aload 1
aload 2
aload 3
iload 4
invokespecial org.apache.cassandra.db.partitions.AbstractBTreePartition.unfilteredIterator:(Lorg/apache/cassandra/db/partitions/AbstractBTreePartition$Holder;Lorg/apache/cassandra/db/filter/ColumnFilter;Lorg/apache/cassandra/db/Slices;Z)Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;
invokevirtual org.apache.cassandra.utils.memory.EnsureOnHeap.applyToPartition:(Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;)Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/db/partitions/AtomicBTreePartition;
0 1 1 current Lorg/apache/cassandra/db/partitions/AbstractBTreePartition$Holder;
0 1 2 selection Lorg/apache/cassandra/db/filter/ColumnFilter;
0 1 3 slices Lorg/apache/cassandra/db/Slices;
0 1 4 reversed Z
MethodParameters:
Name Flags
current
selection
slices
reversed
public java.util.Iterator<org.apache.cassandra.db.rows.Row> iterator();
descriptor: ()Ljava/util/Iterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.db.partitions.AtomicBTreePartition.allocator:Lorg/apache/cassandra/utils/memory/MemtableAllocator;
invokevirtual org.apache.cassandra.utils.memory.MemtableAllocator.ensureOnHeap:()Lorg/apache/cassandra/utils/memory/EnsureOnHeap;
aload 0
invokespecial org.apache.cassandra.db.partitions.AbstractBTreePartition.iterator:()Ljava/util/Iterator;
invokevirtual org.apache.cassandra.utils.memory.EnsureOnHeap.applyToPartition:(Ljava/util/Iterator;)Ljava/util/Iterator;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/db/partitions/AtomicBTreePartition;
Signature: ()Ljava/util/Iterator<Lorg/apache/cassandra/db/rows/Row;>;
public boolean usePessimisticLocking();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.db.partitions.AtomicBTreePartition.wasteTracker:I
ldc 2147483647
if_icmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/db/partitions/AtomicBTreePartition;
private boolean updateWastedAllocationTracker(long);
descriptor: (J)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: lload 1
ldc 10485760
lcmp
ifge 14
1: lload 1
ldc 1024
ladd
lconst_1
lsub
l2i
sipush 1024
idiv
istore 3
start local 3 2: goto 12
start local 4 3: StackMap locals: int int
StackMap stack:
invokestatic java.lang.System.nanoTime:()J
bipush 17
lushr
l2i
istore 5
start local 5 4: iload 4
iload 5
isub
istore 6
start local 6 5: iload 4
ifeq 6
iload 6
ifge 6
iload 6
sipush -10240
if_icmpge 7
6: StackMap locals: int int
StackMap stack:
sipush -10240
istore 6
7: StackMap locals:
StackMap stack:
iload 6
iload 3
iadd
istore 6
8: iload 6
iflt 10
9: goto 14
10: StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.db.partitions.AtomicBTreePartition.wasteTrackerUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iload 4
iload 5
iload 6
iadd
invokestatic org.apache.cassandra.db.partitions.AtomicBTreePartition.avoidReservedValues:(I)I
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 12
11: iconst_0
ireturn
end local 6 end local 5 end local 4 12: StackMap locals:
StackMap stack:
ldc 2147483647
aload 0
getfield org.apache.cassandra.db.partitions.AtomicBTreePartition.wasteTracker:I
dup
istore 4
start local 4 13: if_icmpne 3
end local 4 end local 3 14: StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.db.partitions.AtomicBTreePartition.wasteTrackerUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
ldc 2147483647
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set:(Ljava/lang/Object;I)V
15: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/apache/cassandra/db/partitions/AtomicBTreePartition;
0 16 1 wastedBytes J
2 14 3 wastedAllocation I
3 12 4 oldTrackerValue I
13 14 4 oldTrackerValue I
4 12 5 time I
5 12 6 delta I
MethodParameters:
Name Flags
wastedBytes
private static int avoidReservedValues(int);
descriptor: (I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
ifeq 1
iload 0
ldc 2147483647
if_icmpne 2
1: StackMap locals:
StackMap stack:
iload 0
iconst_1
iadd
ireturn
2: StackMap locals:
StackMap stack:
iload 0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 wasteTracker I
MethodParameters:
Name Flags
wasteTracker
}
SourceFile: "AtomicBTreePartition.java"
NestMembers:
org.apache.cassandra.db.partitions.AtomicBTreePartition$RowUpdater
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
protected final Holder = org.apache.cassandra.db.partitions.AbstractBTreePartition$Holder of org.apache.cassandra.db.partitions.AbstractBTreePartition
private final RowUpdater = org.apache.cassandra.db.partitions.AtomicBTreePartition$RowUpdater of org.apache.cassandra.db.partitions.AtomicBTreePartition
public final Group = org.apache.cassandra.utils.concurrent.OpOrder$Group of org.apache.cassandra.utils.concurrent.OpOrder