You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ode.apache.org by "Dan Kearns (JIRA)" <ji...@apache.org> on 2007/06/20 01:03:25 UTC
[jira] Created: (ODE-149) Ode should startup faster when there are
many DUs and Processes
Ode should startup faster when there are many DUs and Processes
---------------------------------------------------------------
Key: ODE-149
URL: https://issues.apache.org/jira/browse/ODE-149
Project: Ode
Issue Type: Improvement
Components: BPEL Runtime
Affects Versions: 1.0-incubating
Reporter: Dan Kearns
Startup currently deserializes deployment units, process configurations, and process properties. The default queries for this in hibernate become very slow when there are many of both due to an ill-advised outer join (eg with 10,000 deployment units and 30,000 processes the query would look at 300 million rows when it only needs to look at 30,000 - a difference on the order of 15 minutes). Following is a workaround for hibernate. OpenJpa may need similar fix.
@SuppressWarnings("unchecked")
public Collection<DeploymentUnitDAO> getDeploymentUnits() {
List joined = _session.createSQLQuery("SELECT * FROM STORE_DU du, "
+ "STORE_PROCESS proc where du.NAME=proc.DU")
.addEntity("du",DeploymentUnitDaoImpl.class)
.addEntity("proc",ProcessConfDaoImpl.class )
.addJoin("processes","du.processes")
.list();
Set allDu = new HashSet();
for(Object o : joined) {
Object[] obj = (Object[])o;
allDu.add(obj[0]);
};
return allDu;
}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (ODE-149) Ode should startup faster when there are
many DUs and Processes
Posted by "Dan Kearns (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/ODE-149?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dan Kearns updated ODE-149:
---------------------------
Description:
Startup currently deserializes deployment units, process configurations, and process properties. The default queries for this in hibernate become very slow when there are many of both due to an ill-advised outer join (eg with 10,000 deployment units and 30,000 processes the query would look at 300 million rows when it only needs to look at 30,000 - a difference on the order of 15 minutes). Following is a workaround for hibernate. OpenJpa may need similar fix.
bpel-store: org.apache.ode.store.hib.ConfStoreConnectionHib.java, replace getDeploymentUnits with:
@SuppressWarnings("unchecked")
public Collection<DeploymentUnitDAO> getDeploymentUnits() {
List joined = _session.createSQLQuery("SELECT * FROM STORE_DU du, "
+ "STORE_PROCESS proc where du.NAME=proc.DU")
.addEntity("du",DeploymentUnitDaoImpl.class)
.addEntity("proc",ProcessConfDaoImpl.class )
.addJoin("processes","du.processes")
.list();
Set allDu = new HashSet();
for(Object o : joined) {
Object[] obj = (Object[])o;
allDu.add(obj[0]);
};
return allDu;
}
was:
Startup currently deserializes deployment units, process configurations, and process properties. The default queries for this in hibernate become very slow when there are many of both due to an ill-advised outer join (eg with 10,000 deployment units and 30,000 processes the query would look at 300 million rows when it only needs to look at 30,000 - a difference on the order of 15 minutes). Following is a workaround for hibernate. OpenJpa may need similar fix.
@SuppressWarnings("unchecked")
public Collection<DeploymentUnitDAO> getDeploymentUnits() {
List joined = _session.createSQLQuery("SELECT * FROM STORE_DU du, "
+ "STORE_PROCESS proc where du.NAME=proc.DU")
.addEntity("du",DeploymentUnitDaoImpl.class)
.addEntity("proc",ProcessConfDaoImpl.class )
.addJoin("processes","du.processes")
.list();
Set allDu = new HashSet();
for(Object o : joined) {
Object[] obj = (Object[])o;
allDu.add(obj[0]);
};
return allDu;
}
> Ode should startup faster when there are many DUs and Processes
> ---------------------------------------------------------------
>
> Key: ODE-149
> URL: https://issues.apache.org/jira/browse/ODE-149
> Project: Ode
> Issue Type: Improvement
> Components: BPEL Runtime
> Affects Versions: 1.0-incubating
> Reporter: Dan Kearns
>
> Startup currently deserializes deployment units, process configurations, and process properties. The default queries for this in hibernate become very slow when there are many of both due to an ill-advised outer join (eg with 10,000 deployment units and 30,000 processes the query would look at 300 million rows when it only needs to look at 30,000 - a difference on the order of 15 minutes). Following is a workaround for hibernate. OpenJpa may need similar fix.
> bpel-store: org.apache.ode.store.hib.ConfStoreConnectionHib.java, replace getDeploymentUnits with:
> @SuppressWarnings("unchecked")
> public Collection<DeploymentUnitDAO> getDeploymentUnits() {
> List joined = _session.createSQLQuery("SELECT * FROM STORE_DU du, "
> + "STORE_PROCESS proc where du.NAME=proc.DU")
> .addEntity("du",DeploymentUnitDaoImpl.class)
> .addEntity("proc",ProcessConfDaoImpl.class )
> .addJoin("processes","du.processes")
> .list();
> Set allDu = new HashSet();
> for(Object o : joined) {
> Object[] obj = (Object[])o;
> allDu.add(obj[0]);
> };
> return allDu;
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.