ode-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexis Midon (JIRA)" <j...@apache.org>
Subject [jira] Closed: (ODE-425) SimpleScheduler recovery time is O(n) with respect to number outstanding jobs; should be O(1)
Date Fri, 17 Apr 2009 17:09:15 GMT

     [ https://issues.apache.org/jira/browse/ODE-425?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Alexis Midon closed ODE-425.
----------------------------


> SimpleScheduler recovery time is O(n) with respect to number outstanding jobs; should
be O(1)
> ---------------------------------------------------------------------------------------------
>
>                 Key: ODE-425
>                 URL: https://issues.apache.org/jira/browse/ODE-425
>             Project: ODE
>          Issue Type: Bug
>          Components: BPEL Runtime
>    Affects Versions: 1.2
>            Reporter: Alex Boisvert
>             Fix For: 1.3.1
>
>
> SimpleScheduler recovery is O(n) with respect to outstanding jobs.   
> I recently discovered that during recovery, Ode executes an update statement for every
10 outstanding jobs:
> "OdeScheduler" prio=1 tid=0x00002aaab076f530 nid=0x2bc9 runnable [0x00000000441db000..0x00000000441dbe10]
> at java.net.SocketInputStream.socketRead0(Native Method)
> at java.net.SocketInputStream.read(SocketInputStream.java:129)
> at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:113)
> at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:160)
> at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:188)
> - locked <0x00002b786196b278> (a com.mysql.jdbc.util.ReadAheadInputStream)
> at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1910)
> at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2304)
> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2803)
> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
> at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1169)
> - locked <0x00002b786195cc30> (a java.lang.Object)
> at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:693)
> at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1257)
> - locked <0x00002b786195cc30> (a java.lang.Object)
> at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:236)
> at org.apache.ode.scheduler.simple.JdbcDelegate.dequeueImmediate(JdbcDelegate.java:163)
> at org.apache.ode.scheduler.simple.SimpleScheduler$6.call(SimpleScheduler.java:421)
> at org.apache.ode.scheduler.simple.SimpleScheduler$6.call(SimpleScheduler.java:420)
> at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:176)
> at org.apache.ode.scheduler.simple.SimpleScheduler.doLoadImmediate(SimpleScheduler.java:419)
> at org.apache.ode.scheduler.simple.SimpleScheduler.recoverStaleNode(SimpleScheduler.java:499)
> at org.apache.ode.scheduler.simple.SimpleScheduler$CheckStaleNodes.run(SimpleScheduler.java:598)
> at org.apache.ode.scheduler.simple.SimpleScheduler.runTask(SimpleScheduler.java:400)
> at org.apache.ode.scheduler.simple.SchedulerThread.run(SchedulerThread.java:137)
> at java.lang.Thread.run(Thread.java:595)
> Lovely, except when you have 100,000's outstanding jobs in the database.   This can lead
to very long startup time, and there's no good reason for that.

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


Mime
View raw message