[
https://issues.apache.org/jira/browse/IGNITE-15017?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vladislav Pyatkov updated IGNITE-15017:
---------------------------------------
Description:
During analyze of JFR I noticed that the threads waiting long time on getting
compounds on the future.
It happened on an exclusive checkpoint phase and have a negative impact to
transactions (they increased to a hundred milliseconds).
This stack held the checkpoint workers:
{noformat}
org.apache.ignite.internal.util.future.GridCompoundFuture.futuresCount() line:
358 2 0,036 272 938 246
org.apache.ignite.internal.util.future.GridCompoundFuture.checkComplete()
line: 282 2 0,036 272 938 246
org.apache.ignite.internal.util.future.GridCompoundFuture.apply(IgniteInternalFuture)
line: 142 2 0,036 272 938 246
org.apache.ignite.internal.util.future.GridCompoundFuture.apply(Object) line:
43 2 0,036 272 938 246
org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(IgniteInClosure)
line: 407 2 0,036 272 938 246
org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(Object) line:
355 2 0,036 272 938 246
org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter$Node)
line: 343 2 0,036 272 938 246
org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(Object,
Throwable, boolean) line: 520 2 0,036 272 938 246
org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(Object,
Throwable) line: 498 2 0,036 272 938 246
org.apache.ignite.internal.util.future.GridFutureAdapter.onDone() line: 464 2
0,036 272 938 246
org.apache.ignite.internal.util.IgniteUtils.lambda$wrapIgniteFuture$3(Runnable,
GridFutureAdapter) line: 11730 2 0,036 272 938 246
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker)
line: 1149 2 0,036 272 938 246
java.util.concurrent.ThreadPoolExecutor$Worker.run() line: 624 2
0,036 272 938 246
java.lang.Thread.run() line: 748 2
0,036 272 938 246
{noformat}
You can see that the method `checkComplete` was freezed on 272 938 246
microseconds in two times invocations.
was:
During analyze of JFR I noticed that the threads waiting long time on getting
compounds on the future.
It happened on an exclusive checkpoint phase and have a negative impact to
transactions (they increased to a hundred milliseconds).
This stack held the checkpoint workers:
{noformat}
org.apache.ignite.internal.util.future.GridCompoundFuture.futuresCount() line:
358 2 0,036 272 938 246
org.apache.ignite.internal.util.future.GridCompoundFuture.checkComplete()
line: 282 2 0,036 272 938 246
org.apache.ignite.internal.util.future.GridCompoundFuture.apply(IgniteInternalFuture)
line: 142 2 0,036 272 938 246
org.apache.ignite.internal.util.future.GridCompoundFuture.apply(Object) line:
43 2 0,036 272 938 246
org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(IgniteInClosure)
line: 407 2 0,036 272 938 246
org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(Object) line:
355 2 0,036 272 938 246
org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter$Node)
line: 343 2 0,036 272 938 246
org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(Object,
Throwable, boolean) line: 520 2 0,036 272 938 246
org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(Object,
Throwable) line: 498 2 0,036 272 938 246
org.apache.ignite.internal.util.future.GridFutureAdapter.onDone() line: 464 2
0,036 272 938 246
org.apache.ignite.internal.util.IgniteUtils.lambda$wrapIgniteFuture$3(Runnable,
GridFutureAdapter) line: 11730 2 0,036 272 938 246
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker)
line: 1149 2 0,036 272 938 246
java.util.concurrent.ThreadPoolExecutor$Worker.run() line: 624 2
0,036 272 938 246
java.lang.Thread.run() line: 748 2
0,036 272 938 246
{noformat}
> Contention in lock on Compound future
> -------------------------------------
>
> Key: IGNITE-15017
> URL: https://issues.apache.org/jira/browse/IGNITE-15017
> Project: Ignite
> Issue Type: Improvement
> Reporter: Vladislav Pyatkov
> Assignee: Vladislav Pyatkov
> Priority: Major
>
> During analyze of JFR I noticed that the threads waiting long time on getting
> compounds on the future.
> It happened on an exclusive checkpoint phase and have a negative impact to
> transactions (they increased to a hundred milliseconds).
> This stack held the checkpoint workers:
> {noformat}
> org.apache.ignite.internal.util.future.GridCompoundFuture.futuresCount()
> line: 358 2 0,036 272 938 246
> org.apache.ignite.internal.util.future.GridCompoundFuture.checkComplete()
> line: 282 2 0,036 272 938 246
>
> org.apache.ignite.internal.util.future.GridCompoundFuture.apply(IgniteInternalFuture)
> line: 142 2 0,036 272 938 246
>
> org.apache.ignite.internal.util.future.GridCompoundFuture.apply(Object) line:
> 43 2 0,036 272 938 246
>
> org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(IgniteInClosure)
> line: 407 2 0,036 272 938 246
>
> org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(Object)
> line: 355 2 0,036 272 938 246
>
> org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter$Node)
> line: 343 2 0,036 272 938 246
>
> org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(Object,
> Throwable, boolean) line: 520 2 0,036 272 938 246
>
> org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(Object,
> Throwable) line: 498 2 0,036 272 938 246
>
> org.apache.ignite.internal.util.future.GridFutureAdapter.onDone() line: 464
> 2 0,036 272 938 246
>
> org.apache.ignite.internal.util.IgniteUtils.lambda$wrapIgniteFuture$3(Runnable,
> GridFutureAdapter) line: 11730 2 0,036 272 938 246
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker)
> line: 1149 2 0,036 272 938 246
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run() line: 624 2
> 0,036 272 938 246
> java.lang.Thread.run() line: 748
> 2 0,036 272 938 246
> {noformat}
> You can see that the method `checkComplete` was freezed on 272 938 246
> microseconds in two times invocations.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)