[ 
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)

Reply via email to