Denis Chudov created IGNITE-28312:
-------------------------------------
Summary: Heap allocations caused by debug logging that is not
actually used
Key: IGNITE-28312
URL: https://issues.apache.org/jira/browse/IGNITE-28312
Project: Ignite
Issue Type: Bug
Reporter: Denis Chudov
Usages of debug logging on hot path should be revised.
Examples:
One
{code:java}
Stack Trace Count Percentage void java.lang.Thread.run() 1 100 % void
java.lang.Thread.runWith(Object, Runnable) 1 100 % void
java.util.concurrent.ThreadPoolExecutor$Worker.run() 1 100 % void
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker)
1 100 % void
org.apache.ignite.internal.replicator.ReplicaService$$Lambda.0x0000000800f9c228.run()
1 100 % void
org.apache.ignite.internal.replicator.ReplicaService.lambda$sendToReplicaRaw$6(CompletableFuture,
ErrorReplicaResponse) 1 100 % boolean
java.util.concurrent.CompletableFuture.completeExceptionally(Throwable) 1 100
% void java.util.concurrent.CompletableFuture.postComplete() 1 100 %
CompletableFuture java.util.concurrent.CompletableFuture$UniHandle.tryFire(int)
1 100 % boolean java.util.concurrent.CompletableFuture.uniHandle(Object,
BiFunction, CompletableFuture$UniHandle) 1 100 % Object
org.apache.ignite.internal.table.distributed.storage.InternalTableImpl$$Lambda.0x0000000801167068.apply(Object,
Object) 1 100 % CompletableFuture
org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.lambda$trackingInvoke$13(int,
InternalTransaction, int, ReplicaRequest, PendingTxPartitionEnlistment,
BiPredicate, Object, Throwable) 1 100 % CompletableFuture
org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.trackingInvoke(InternalTransaction,
int, Function, boolean, PendingTxPartitionEnlistment, BiPredicate, int) 1
100 % CompletableFuture
org.apache.ignite.internal.replicator.ReplicaService.invoke(String,
ReplicaRequest) 1 100 % CompletableFuture
org.apache.ignite.internal.replicator.ReplicaService.sendToReplica(String,
ReplicaRequest) 1 100 % CompletableFuture
org.apache.ignite.internal.replicator.ReplicaService.sendToReplicaRaw(String,
ReplicaRequest) 1 100 % CompletableFuture
org.apache.ignite.internal.network.MessagingService.invoke(String,
NetworkMessage, long) 1 100 % CompletableFuture
org.apache.ignite.internal.network.wrapper.JumpToExecutorByConsistentIdAfterSend.invoke(String,
ChannelType, NetworkMessage, long) 1 100 % CompletableFuture
org.apache.ignite.internal.network.DefaultMessagingService.invoke(String,
ChannelType, NetworkMessage, long) 1 100 % CompletableFuture
org.apache.ignite.internal.network.DefaultMessagingService.invoke0(InternalClusterNode,
ChannelType, NetworkMessage, long, boolean) 1 100 % void
org.apache.ignite.internal.network.DefaultMessagingService.sendToSelf(NetworkMessage,
Long) 1 100 % void
org.apache.ignite.internal.replicator.ReplicaManager$$Lambda.0x0000000800486c98.onReceived(NetworkMessage,
InternalClusterNode, Long) 1 100 % void
org.apache.ignite.internal.replicator.ReplicaManager.onReplicaMessageReceived(NetworkMessage,
InternalClusterNode, Long) 1 100 % void
org.apache.ignite.internal.replicator.ReplicaManager.handleReplicaRequest(ReplicaRequest,
InternalClusterNode, Long) 1 100 % CompletableFuture
java.util.concurrent.CompletableFuture.handle(BiFunction) 1 100 %
CompletableFuture
java.util.concurrent.CompletableFuture.uniHandleStage(Executor, BiFunction) 1
100 % boolean java.util.concurrent.CompletableFuture.uniHandle(Object,
BiFunction, CompletableFuture$UniHandle) 1 100 % Object
org.apache.ignite.internal.replicator.ReplicaManager$$Lambda.0x0000000801060438.apply(Object,
Object) 1 100 % Object
org.apache.ignite.internal.replicator.ReplicaManager.lambda$handleReplicaRequest$4(boolean,
ReplicaRequest, String, Long, ReplicationGroupId, ReplicaResult, Throwable) 1
100 % void
org.apache.ignite.internal.logger.IgniteThrottledLoggerImpl.debug(String,
String, Throwable, Object[]) 1 100 % void
org.apache.ignite.internal.logger.IgniteThrottledLoggerImpl.logInternal(String,
Supplier, Throwable, System$Logger$Level) 1 100 % Object
org.apache.ignite.internal.logger.IgniteThrottledLoggerImpl$$Lambda.0x000000080148d7c8.get()
1 100 % String
org.apache.ignite.internal.logger.IgniteThrottledLoggerImpl.lambda$debug$10(String,
Object[]) 1 100 % String
org.apache.ignite.internal.lang.IgniteStringFormatter.format(String, Object[])
1 100 % void
org.apache.ignite.internal.lang.IgniteStringFormatter.deeplyAppendParameter(StringBuilder,
Object, HashSet) 1 100 % void
org.apache.ignite.internal.lang.IgniteStringFormatter.safeObjectAppend(StringBuilder,
Object) 1 100 % String
org.apache.ignite.internal.partition.replicator.network.replication.ReadWriteSingleRowPkReplicaRequestImpl.toString()
1 100 % String
org.apache.ignite.internal.tostring.IgniteToStringBuilder.toString(Class,
Object) 1 100 % String
org.apache.ignite.internal.tostring.IgniteToStringBuilder.toStringImpl(Class,
StringBuilderLimitedLength, Object, Object[], Object[], boolean[], int) 1
100 % String
org.apache.ignite.internal.tostring.IgniteToStringBuilder.toStringImpl0(Class,
StringBuilderLimitedLength, Object, Object[], Object[], boolean[], int) 1
100 % void
org.apache.ignite.internal.tostring.IgniteToStringBuilder.toString(StringBuilderLimitedLength,
Class, Object) 1 100 % StringBuilderLimitedLength
org.apache.ignite.internal.tostring.StringBuilderLimitedLength.app(Object) 1
100 % IgniteStringBuilder
org.apache.ignite.internal.lang.IgniteStringBuilder.app(Object) 1 100 %
StringBuilder java.lang.StringBuilder.append(Object) 1 100 % String
java.lang.String.valueOf(Object) 1 100 % String
java.nio.ByteBuffer.toString() 1 100 % StringBuilder
java.lang.StringBuilder.append(int) 1 100 % AbstractStringBuilder
java.lang.AbstractStringBuilder.append(int) 1 100 % void
java.lang.AbstractStringBuilder.ensureCapacityInternal(int) 1 100 % byte[]
java.util.Arrays.copyOf(byte[], int) 1 100 %{code}
and more
{code:java}
Stack Trace Count Percentage void java.lang.Thread.run() 1 100 % void
java.lang.Thread.runWith(Object, Runnable) 1 100 % void
java.util.concurrent.ThreadPoolExecutor$Worker.run() 1 100 % void
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker)
1 100 % void
org.apache.ignite.internal.replicator.ReplicaService$$Lambda.0x0000000800f9c228.run()
1 100 % void
org.apache.ignite.internal.replicator.ReplicaService.lambda$sendToReplicaRaw$6(CompletableFuture,
ErrorReplicaResponse) 1 100 % boolean
java.util.concurrent.CompletableFuture.completeExceptionally(Throwable) 1 100
% void java.util.concurrent.CompletableFuture.postComplete() 1 100 %
CompletableFuture java.util.concurrent.CompletableFuture$UniHandle.tryFire(int)
1 100 % boolean java.util.concurrent.CompletableFuture.uniHandle(Object,
BiFunction, CompletableFuture$UniHandle) 1 100 % Object
org.apache.ignite.internal.table.distributed.storage.InternalTableImpl$$Lambda.0x0000000801167b80.apply(Object,
Object) 1 100 % CompletableFuture
org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.lambda$postEnlist$16(boolean,
InternalTransaction, boolean, Object, Throwable) 1 100 % CompletableFuture
org.apache.ignite.internal.tx.impl.ReadWriteTransactionImpl.rollbackAsync() 1
100 % CompletableFuture
org.apache.ignite.internal.tx.impl.ReadWriteTransactionImpl.finish(boolean,
HybridTimestamp, boolean, boolean) 1 100 % CompletableFuture
org.apache.ignite.internal.tx.impl.ReadWriteTransactionImpl.finishInternal(boolean,
HybridTimestamp, boolean, boolean, boolean) 1 100 % CompletableFuture
java.util.concurrent.CompletableFuture.handle(BiFunction) 1 100 %
CompletableFuture
java.util.concurrent.CompletableFuture.uniHandleStage(Executor, BiFunction) 1
100 % boolean java.util.concurrent.CompletableFuture.uniHandle(Object,
BiFunction, CompletableFuture$UniHandle) 1 100 % Object
org.apache.ignite.internal.tx.impl.ReadWriteTransactionImpl$$Lambda.0x00000008011fe3c8.apply(Object,
Object) 1 100 % CompletableFuture
org.apache.ignite.internal.tx.impl.ReadWriteTransactionImpl.lambda$finishInternal$6(boolean,
boolean, Void, Throwable) 1 100 % CompletableFuture
org.apache.ignite.internal.tx.impl.TxManagerImpl.finish(HybridTimestampTracker,
ZonePartitionId, boolean, boolean, boolean, boolean, Map, UUID) 1 100 %
void org.apache.ignite.internal.logger.IgniteLoggerImpl.debug(String, Object[])
1 100 % void
org.apache.ignite.internal.logger.IgniteLoggerImpl.logInternal(System$Logger$Level,
String, Throwable, Object[]) 1 100 % String
org.apache.ignite.internal.lang.IgniteStringFormatter.format(String, Object[])
1 100 % void
org.apache.ignite.internal.lang.IgniteStringFormatter.deeplyAppendParameter(StringBuilder,
Object, HashSet) 1 100 % void
org.apache.ignite.internal.lang.IgniteStringFormatter.safeObjectAppend(StringBuilder,
Object) 1 100 % String java.util.concurrent.ConcurrentHashMap.toString()
1 100 % StringBuilder java.lang.StringBuilder.append(Object) 1 100 %
String java.lang.String.valueOf(Object) 1 100 % String
org.apache.ignite.internal.tx.PendingTxPartitionEnlistment.toString() 1
100 % String
org.apache.ignite.internal.tostring.IgniteToStringBuilder.toString(Class,
Object, String) 1 100 % String
org.apache.ignite.internal.tostring.IgniteToStringBuilder.toString(Class,
Object, String, Object) 1 100 % String
org.apache.ignite.internal.tostring.IgniteToStringBuilder.toString(Class,
Object, String, Object, boolean) 1 100 %{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)