[ https://issues.apache.org/jira/browse/IGNITE-12104?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vladislav Pyatkov updated IGNITE-12104: --------------------------------------- Description: In several cases, when using p2p class loading, consume a lot of time checking loader hierarchy. This scenario easy to see by that stack in samples of profile: {noformat} "pub-#3217917%DPL_GRID%DplGridNodeName%" #3223897 prio=5 os_prio=0 tid=0x00007f47a414f800 nid=0x1dca46 runnable [0x00007eaca31b0000] java.lang.Thread.State: RUNNABLE at java.lang.String.concat(String.java:2034) at java.net.URLClassLoader$1.run(URLClassLoader.java:364) at java.net.URLClassLoader$1.run(URLClassLoader.java:362) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:361) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) - locked <0x00007f4c8dd6c888> (a java.lang.Object) at java.lang.ClassLoader.loadClass(ClassLoader.java:411) - locked <0x00007f4c8db4f530> (a java.lang.Object) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) at java.lang.ClassLoader.loadClass(ClassLoader.java:411) - locked <0x00007f4ba0138340> (a com.sbt.core.envelope.container.loader.NamedClassLoader) at java.lang.ClassLoader.loadClass(ClassLoader.java:411) - locked <0x00007f4ba012a800> (a com.sbt.core.envelope.container.loader.ImplClassLoader) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:348) at org.apache.ignite.internal.managers.deployment.GridDeploymentLocalStore.getDeployment(GridDeploymentLocalStore.java:191) at org.apache.ignite.internal.managers.deployment.GridDeploymentManager.getGlobalDeployment(GridDeploymentManager.java:462) at org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:983) at org.apache.ignite.internal.processors.job.GridJobProcessor$JobExecutionListener.onMessage(GridJobProcessor.java:1921) at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1556) at org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1184) at org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:125) at org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1091) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) {noformat} We can to put down the issue by searching class from deployment cache (it will give a result if class was loaded earlier) before to go to class loader. was: In several cases, when using p2p class loading, consume a lot of time checking loader hierarchy. This scenario easy to see by that stack in samples of profile: {noformat} "pub-#3217917%DPL_GRID%DplGridNodeName%" #3223897 prio=5 os_prio=0 tid=0x00007f47a414f800 nid=0x1dca46 runnable [0x00007eaca31b0000] java.lang.Thread.State: RUNNABLE at java.lang.String.concat(String.java:2034) at java.net.URLClassLoader$1.run(URLClassLoader.java:364) at java.net.URLClassLoader$1.run(URLClassLoader.java:362) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:361) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) - locked <0x00007f4c8dd6c888> (a java.lang.Object) at java.lang.ClassLoader.loadClass(ClassLoader.java:411) - locked <0x00007f4c8db4f530> (a java.lang.Object) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) at java.lang.ClassLoader.loadClass(ClassLoader.java:411) - locked <0x00007f4ba0138340> (a com.sbt.core.envelope.container.loader.NamedClassLoader) at java.lang.ClassLoader.loadClass(ClassLoader.java:411) - locked <0x00007f4ba012a800> (a com.sbt.core.envelope.container.loader.ImplClassLoader) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:348) at org.apache.ignite.internal.managers.deployment.GridDeploymentLocalStore.getDeployment(GridDeploymentLocalStore.java:191) at org.apache.ignite.internal.managers.deployment.GridDeploymentManager.getGlobalDeployment(GridDeploymentManager.java:462) at org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:983) at org.apache.ignite.internal.processors.job.GridJobProcessor$JobExecutionListener.onMessage(GridJobProcessor.java:1921) at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1556) at org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1184) at org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:125) at org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1091) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) {noformat} We can to put down the issue by searching class from deployment cache (it will give a result if class was loaded before) before to go to class loader. > Check deployment from cache before to load it from local or version storage > --------------------------------------------------------------------------- > > Key: IGNITE-12104 > URL: https://issues.apache.org/jira/browse/IGNITE-12104 > Project: Ignite > Issue Type: Improvement > Reporter: Vladislav Pyatkov > Priority: Major > Fix For: 2.8 > > > In several cases, when using p2p class loading, consume a lot of time > checking loader hierarchy. > This scenario easy to see by that stack in samples of profile: > {noformat} > "pub-#3217917%DPL_GRID%DplGridNodeName%" #3223897 prio=5 os_prio=0 > tid=0x00007f47a414f800 nid=0x1dca46 runnable [0x00007eaca31b0000] > java.lang.Thread.State: RUNNABLE > at java.lang.String.concat(String.java:2034) > at java.net.URLClassLoader$1.run(URLClassLoader.java:364) > at java.net.URLClassLoader$1.run(URLClassLoader.java:362) > at java.security.AccessController.doPrivileged(Native Method) > at java.net.URLClassLoader.findClass(URLClassLoader.java:361) > at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > - locked <0x00007f4c8dd6c888> (a java.lang.Object) > at java.lang.ClassLoader.loadClass(ClassLoader.java:411) > - locked <0x00007f4c8db4f530> (a java.lang.Object) > at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) > at java.lang.ClassLoader.loadClass(ClassLoader.java:411) > - locked <0x00007f4ba0138340> (a > com.sbt.core.envelope.container.loader.NamedClassLoader) > at java.lang.ClassLoader.loadClass(ClassLoader.java:411) > - locked <0x00007f4ba012a800> (a > com.sbt.core.envelope.container.loader.ImplClassLoader) > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Class.java:348) > at > org.apache.ignite.internal.managers.deployment.GridDeploymentLocalStore.getDeployment(GridDeploymentLocalStore.java:191) > at > org.apache.ignite.internal.managers.deployment.GridDeploymentManager.getGlobalDeployment(GridDeploymentManager.java:462) > at > org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:983) > at > org.apache.ignite.internal.processors.job.GridJobProcessor$JobExecutionListener.onMessage(GridJobProcessor.java:1921) > at > org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1556) > at > org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1184) > at > org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:125) > at > org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1091) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > {noformat} > We can to put down the issue by searching class from deployment cache (it > will give a result if class was loaded earlier) before to go to class loader. -- This message was sent by Atlassian Jira (v8.3.2#803003)