[
https://issues.apache.org/jira/browse/OODT-203?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13051620#comment-13051620
]
Chris A. Mattmann commented on OODT-203:
----------------------------------------
Original comment from [~woollard]:
{quote}
Initial implementation of NonBlocking ThreadPoolWorkflowEngine delivered in
revision 5541. This Engine uses a vector of queued workflow instances to hold
workflows with unsatisfied preconditions. A shepard thread is introduced that
iterates over this vector, checking for satisfied preconditions and, as
workflows with satisfied precoditions are identified, the engine uses a thread
from the thread pool to monitor the execution of the workflow instance. When a
workflow consists of multiple tasks, the current task pointer is incremented to
the next task in the workflow and the worklfow is requeued in the vector until
the next task's preconditions are satisfied.
{quote}
> Create a Non-Blocking threaded implementation of the Workflow Engine
> --------------------------------------------------------------------
>
> Key: OODT-203
> URL: https://issues.apache.org/jira/browse/OODT-203
> Project: OODT
> Issue Type: Bug
> Components: workflow manager
> Environment: from JPL's last internal WM JIRA release
> Reporter: David Woollard
> Fix For: 0.4
>
>
> The current implementation of the threaded workflow engine uses a thread from
> its thread pool for each of the workflows it creates. This can cause a
> problem if a significant number of workflows submitted block waiting on
> preconditions to be satisfied. Each of these paused workflows hangs on to the
> thread allocated from the thread pool, so workflows that could be run are
> blocked by workflows waiting on preconditions if the thread pool is fully
> allocated.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira