You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ode.apache.org by "Alex Boisvert (JIRA)" <ji...@apache.org> on 2008/12/02 01:09:44 UTC

[jira] Created: (ODE-444) Improve performance of InstanceManagement

Improve performance of InstanceManagement
-----------------------------------------

                 Key: ODE-444
                 URL: https://issues.apache.org/jira/browse/ODE-444
             Project: ODE
          Issue Type: Task
          Components: Management Console
            Reporter: Alex Boisvert
             Fix For: 1.3


There are some performance issues with the current InstanceManagement.listXXXInstances() operations, notably:

1) listAllInstances() is quite dangerous -- it will run into OutOfMemoryException if you have lots of instances
2) listAllInstancesWithLimit() is better but suffers performance-wise because it attempts to load the instance summary data, the events, the scopes and properties of the matching instances.  This result is too much database activity for the common case, moreover the current implementation is horrific because it actually performs 4 joins for each instance!

So I'm introducing listInstancesSummary(String filter, String order, int limit) that only loads the instance summary and the properties in only 3 joins (total, not per instance) to address these performance issues and making both listAllInstances() and listAllInstancesWithLimit() use this method under the cover.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (ODE-444) Improve performance of InstanceManagement (1.x branch)

Posted by "Alex Boisvert (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/ODE-444?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12661631#action_12661631 ] 

Alex Boisvert commented on ODE-444:
-----------------------------------

The trunk patch is tracked by ODE-446

> Improve performance of InstanceManagement (1.x branch)
> ------------------------------------------------------
>
>                 Key: ODE-444
>                 URL: https://issues.apache.org/jira/browse/ODE-444
>             Project: ODE
>          Issue Type: Task
>          Components: Management Console
>    Affects Versions: 1.2
>            Reporter: Alex Boisvert
>            Assignee: Alex Boisvert
>             Fix For: 1.3
>
>
> There are some performance issues with the current InstanceManagement.listXXXInstances() operations, notably:
> 1) listAllInstances() is quite dangerous -- it will run into OutOfMemoryException if you have lots of instances
> 2) listAllInstancesWithLimit() is better but suffers performance-wise because it attempts to load the instance summary data, the events, the scopes and properties of the matching instances.  This result is too much database activity for the common case, moreover the current implementation is horrific because it actually performs 4 joins for each instance!
> So I'm introducing listInstancesSummary(String filter, String order, int limit) that only loads the instance summary and the properties in only 3 joins (total, not per instance) to address these performance issues and making both listAllInstances() and listAllInstancesWithLimit() use this method under the cover.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (ODE-444) Improve performance of InstanceManagement (1.x branch)

Posted by "Alex Boisvert (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ODE-444?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Boisvert updated ODE-444:
------------------------------

    Affects Version/s: 1.2

> Improve performance of InstanceManagement (1.x branch)
> ------------------------------------------------------
>
>                 Key: ODE-444
>                 URL: https://issues.apache.org/jira/browse/ODE-444
>             Project: ODE
>          Issue Type: Task
>          Components: Management Console
>    Affects Versions: 1.2
>            Reporter: Alex Boisvert
>            Assignee: Alex Boisvert
>             Fix For: 1.3
>
>
> There are some performance issues with the current InstanceManagement.listXXXInstances() operations, notably:
> 1) listAllInstances() is quite dangerous -- it will run into OutOfMemoryException if you have lots of instances
> 2) listAllInstancesWithLimit() is better but suffers performance-wise because it attempts to load the instance summary data, the events, the scopes and properties of the matching instances.  This result is too much database activity for the common case, moreover the current implementation is horrific because it actually performs 4 joins for each instance!
> So I'm introducing listInstancesSummary(String filter, String order, int limit) that only loads the instance summary and the properties in only 3 joins (total, not per instance) to address these performance issues and making both listAllInstances() and listAllInstancesWithLimit() use this method under the cover.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (ODE-444) Improve performance of InstanceManagement (1.x branch)

Posted by "Piotr Jagielski (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/ODE-444?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12662497#action_12662497 ] 

Piotr Jagielski commented on ODE-444:
-------------------------------------

OK, missed that, thanks for reply

> Improve performance of InstanceManagement (1.x branch)
> ------------------------------------------------------
>
>                 Key: ODE-444
>                 URL: https://issues.apache.org/jira/browse/ODE-444
>             Project: ODE
>          Issue Type: Task
>          Components: Management Console
>    Affects Versions: 1.2
>            Reporter: Alex Boisvert
>            Assignee: Alex Boisvert
>             Fix For: 1.3
>
>
> There are some performance issues with the current InstanceManagement.listXXXInstances() operations, notably:
> 1) listAllInstances() is quite dangerous -- it will run into OutOfMemoryException if you have lots of instances
> 2) listAllInstancesWithLimit() is better but suffers performance-wise because it attempts to load the instance summary data, the events, the scopes and properties of the matching instances.  This result is too much database activity for the common case, moreover the current implementation is horrific because it actually performs 4 joins for each instance!
> So I'm introducing listInstancesSummary(String filter, String order, int limit) that only loads the instance summary and the properties in only 3 joins (total, not per instance) to address these performance issues and making both listAllInstances() and listAllInstancesWithLimit() use this method under the cover.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (ODE-444) Improve performance of InstanceManagement (1.x branch)

Posted by "Alex Boisvert (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ODE-444?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Boisvert updated ODE-444:
------------------------------

    Summary: Improve performance of InstanceManagement (1.x branch)  (was: Improve performance of InstanceManagement)

> Improve performance of InstanceManagement (1.x branch)
> ------------------------------------------------------
>
>                 Key: ODE-444
>                 URL: https://issues.apache.org/jira/browse/ODE-444
>             Project: ODE
>          Issue Type: Task
>          Components: Management Console
>    Affects Versions: 1.2
>            Reporter: Alex Boisvert
>             Fix For: 1.3
>
>
> There are some performance issues with the current InstanceManagement.listXXXInstances() operations, notably:
> 1) listAllInstances() is quite dangerous -- it will run into OutOfMemoryException if you have lots of instances
> 2) listAllInstancesWithLimit() is better but suffers performance-wise because it attempts to load the instance summary data, the events, the scopes and properties of the matching instances.  This result is too much database activity for the common case, moreover the current implementation is horrific because it actually performs 4 joins for each instance!
> So I'm introducing listInstancesSummary(String filter, String order, int limit) that only loads the instance summary and the properties in only 3 joins (total, not per instance) to address these performance issues and making both listAllInstances() and listAllInstancesWithLimit() use this method under the cover.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (ODE-444) Improve performance of InstanceManagement

Posted by "Alex Boisvert (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ODE-444?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Boisvert resolved ODE-444.
-------------------------------

    Resolution: Fixed

Fixed in Ode 1.x branch

boisvert@boog:~/svn/ode/1.1$ svn commit -m "ODE-444 Improve performance of InstanceManagement service"
Sending        axis2-war/src/test/java/org/apache/ode/axis2/management/InstanceManagementTest.java
Sending        bpel-api/src/main/java/org/apache/ode/bpel/pmapi/InstanceManagement.java
Sending        bpel-dao/src/main/java/org/apache/ode/bpel/dao/BpelDAOConnection.java
Sending        bpel-dao/src/main/java/org/apache/ode/bpel/dao/CorrelationSetDAO.java
Sending        bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java
Sending        bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/BpelDAOConnectionImpl.java
Sending        bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/ActivityRecoveryTest.java
Sending        dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionImpl.java
Sending        dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelationSet.java
Sending        dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java
Sending        dao-jpa/src/main/java/org/apache/ode/dao/jpa/CorrelationSetDAOImpl.java
Sending        dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessInstanceDAOImpl.java
Transmitting file data ............
Committed revision 722680.


> Improve performance of InstanceManagement
> -----------------------------------------
>
>                 Key: ODE-444
>                 URL: https://issues.apache.org/jira/browse/ODE-444
>             Project: ODE
>          Issue Type: Task
>          Components: Management Console
>            Reporter: Alex Boisvert
>             Fix For: 1.3
>
>
> There are some performance issues with the current InstanceManagement.listXXXInstances() operations, notably:
> 1) listAllInstances() is quite dangerous -- it will run into OutOfMemoryException if you have lots of instances
> 2) listAllInstancesWithLimit() is better but suffers performance-wise because it attempts to load the instance summary data, the events, the scopes and properties of the matching instances.  This result is too much database activity for the common case, moreover the current implementation is horrific because it actually performs 4 joins for each instance!
> So I'm introducing listInstancesSummary(String filter, String order, int limit) that only loads the instance summary and the properties in only 3 joins (total, not per instance) to address these performance issues and making both listAllInstances() and listAllInstancesWithLimit() use this method under the cover.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (ODE-444) Improve performance of InstanceManagement (1.x branch)

Posted by "Piotr Jagielski (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/ODE-444?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12661512#action_12661512 ] 

Piotr Jagielski commented on ODE-444:
-------------------------------------

Is this patch going to be applied on trunk? I searched the code and found that it isn't and comments say that listInstances will be deprecated since ODE 1.3

> Improve performance of InstanceManagement (1.x branch)
> ------------------------------------------------------
>
>                 Key: ODE-444
>                 URL: https://issues.apache.org/jira/browse/ODE-444
>             Project: ODE
>          Issue Type: Task
>          Components: Management Console
>    Affects Versions: 1.2
>            Reporter: Alex Boisvert
>            Assignee: Alex Boisvert
>             Fix For: 1.3
>
>
> There are some performance issues with the current InstanceManagement.listXXXInstances() operations, notably:
> 1) listAllInstances() is quite dangerous -- it will run into OutOfMemoryException if you have lots of instances
> 2) listAllInstancesWithLimit() is better but suffers performance-wise because it attempts to load the instance summary data, the events, the scopes and properties of the matching instances.  This result is too much database activity for the common case, moreover the current implementation is horrific because it actually performs 4 joins for each instance!
> So I'm introducing listInstancesSummary(String filter, String order, int limit) that only loads the instance summary and the properties in only 3 joins (total, not per instance) to address these performance issues and making both listAllInstances() and listAllInstancesWithLimit() use this method under the cover.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (ODE-444) Improve performance of InstanceManagement (1.x branch)

Posted by "Alex Boisvert (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ODE-444?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Boisvert reassigned ODE-444:
---------------------------------

    Assignee: Alex Boisvert

> Improve performance of InstanceManagement (1.x branch)
> ------------------------------------------------------
>
>                 Key: ODE-444
>                 URL: https://issues.apache.org/jira/browse/ODE-444
>             Project: ODE
>          Issue Type: Task
>          Components: Management Console
>    Affects Versions: 1.2
>            Reporter: Alex Boisvert
>            Assignee: Alex Boisvert
>             Fix For: 1.3
>
>
> There are some performance issues with the current InstanceManagement.listXXXInstances() operations, notably:
> 1) listAllInstances() is quite dangerous -- it will run into OutOfMemoryException if you have lots of instances
> 2) listAllInstancesWithLimit() is better but suffers performance-wise because it attempts to load the instance summary data, the events, the scopes and properties of the matching instances.  This result is too much database activity for the common case, moreover the current implementation is horrific because it actually performs 4 joins for each instance!
> So I'm introducing listInstancesSummary(String filter, String order, int limit) that only loads the instance summary and the properties in only 3 joins (total, not per instance) to address these performance issues and making both listAllInstances() and listAllInstancesWithLimit() use this method under the cover.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (ODE-444) Improve performance of InstanceManagement

Posted by "Alex Boisvert (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/ODE-444?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12652213#action_12652213 ] 

Alex Boisvert commented on ODE-444:
-----------------------------------

I'm also deprecating both listAllInstances() and listAllInstancesWithLimit() and planning to remove them in 2.0 since they provide no added value over listInstancesSummary(filter, order, limit)

> Improve performance of InstanceManagement
> -----------------------------------------
>
>                 Key: ODE-444
>                 URL: https://issues.apache.org/jira/browse/ODE-444
>             Project: ODE
>          Issue Type: Task
>          Components: Management Console
>            Reporter: Alex Boisvert
>             Fix For: 1.3
>
>
> There are some performance issues with the current InstanceManagement.listXXXInstances() operations, notably:
> 1) listAllInstances() is quite dangerous -- it will run into OutOfMemoryException if you have lots of instances
> 2) listAllInstancesWithLimit() is better but suffers performance-wise because it attempts to load the instance summary data, the events, the scopes and properties of the matching instances.  This result is too much database activity for the common case, moreover the current implementation is horrific because it actually performs 4 joins for each instance!
> So I'm introducing listInstancesSummary(String filter, String order, int limit) that only loads the instance summary and the properties in only 3 joins (total, not per instance) to address these performance issues and making both listAllInstances() and listAllInstancesWithLimit() use this method under the cover.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.