[jira] [Updated] (IGNITE-12104) Check deployment from cache before to load it from local or version storage

2019-08-26 Thread Vladislav Pyatkov (Jira)


 [ 
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=0x7f47a414f800 nid=0x1dca46 runnable [0x7eaca31b]
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 <0x7f4c8dd6c888> (a java.lang.Object)
at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
- locked <0x7f4c8db4f530> (a java.lang.Object)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
- locked <0x7f4ba0138340> (a 
com.sbt.core.envelope.container.loader.NamedClassLoader)
at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
- locked <0x7f4ba012a800> (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=0x7f47a414f800 nid=0x1dca46 runnable [0x7eaca31b]
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 <0x7f4c8dd6c888> (a java.lang.Object)
at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
- locked <0x7f4c8db4f530> (a java.lang.Object)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
- locked <0x7f4ba0138340> (a 
com.sbt.core.envelope.container.loader.NamedClassLoader)
at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
- locked <0x7f4ba012a800> (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 

[jira] [Updated] (IGNITE-12104) Check deployment from cache before to load it from local or version storage

2019-08-26 Thread Vladislav Pyatkov (Jira)


 [ 
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=0x7f47a414f800 nid=0x1dca46 runnable [0x7eaca31b]
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 <0x7f4c8dd6c888> (a java.lang.Object)
at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
- locked <0x7f4c8db4f530> (a java.lang.Object)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
- locked <0x7f4ba0138340> (a 
com.sbt.core.envelope.container.loader.NamedClassLoader)
at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
- locked <0x7f4ba012a800> (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.


  was:
{noformat}
"pub-#3217917%DPL_GRID%DplGridNodeName%" #3223897 prio=5 os_prio=0 
tid=0x7f47a414f800 nid=0x1dca46 runnable [0x7eaca31b]
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 <0x7f4c8dd6c888> (a java.lang.Object)
at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
- locked <0x7f4c8db4f530> (a java.lang.Object)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
- locked <0x7f4ba0138340> (a 
com.sbt.core.envelope.container.loader.NamedClassLoader)
at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
- locked <0x7f4ba012a800> (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