uima-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jerry Cwiklik (JIRA)" <...@uima.apache.org>
Subject [jira] Closed: (UIMA-1800) UIMA AS should block msg submitter thread if a thread pool is empty
Date Fri, 04 Jun 2010 15:52:54 GMT

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

Jerry Cwiklik closed UIMA-1800.

    Resolution: Fixed

Modified the UIMA AS listener code to use new UimaBlockingExecutor which uses a semaphore
with multiple permits to throttle message processing. A submitter thread first requests a
free permit from a semaphore and if one is available it is allowed to submit a message to
a thread pool for processing. If there are no permits available ( meaning all threads in a
pool are busy processing previous messages), the submitter thread blocks. It is unblocked
once a new thread becomes available 

> UIMA AS should block msg submitter thread if a thread pool is empty
> -------------------------------------------------------------------
>                 Key: UIMA-1800
>                 URL: https://issues.apache.org/jira/browse/UIMA-1800
>             Project: UIMA
>          Issue Type: Bug
>          Components: Async Scaleout
>    Affects Versions: 2.3AS
>            Reporter: Jerry Cwiklik
>            Assignee: Jerry Cwiklik
> If a queue scaleout factor > 1, the UIMA AS creates a thread pool and a managing Executor
object. The threads in a pool are used to process incoming messages. A submitter thread receives
a jms message via a callback from Spring and delivers it to the Executor for processing in
one of the threads from the pool. If a thread pool is empty, the Executor policy is to use
the submitter thread to process the message. Since there is a single submitter thread (per
queue) this policy slows down the submitter thread and prevents it from delivering messages
for processing by other threads.
> Change the code to prevent the submitter thread from doing processing. Instead, block
the submitter thread if the thread pool becomes empty. As soon as a thread becomes available,
the submitter thread should deliver a message and wait for a callback from Spring.

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

View raw message