uima-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jaroslaw Cwiklik <uim...@gmail.com>
Subject Re: UimaAsynchronousEngine client poor performance when the pipeline is slow processing the CAS
Date Wed, 01 Feb 2012 14:55:28 GMT
Sorry didnt finish my thought on question #1. If you see sendCAS()
blocking, attach jConsole to the application (you may need to enable JMX),
view the threads and check where your application thread is blocking.


On Wed, Feb 1, 2012 at 9:52 AM, Jaroslaw Cwiklik <uimaee@gmail.com> wrote:

> Florin from you description I cant figure out the cause of the slowness
> that you see. Are you saying that your application thread is stuck in
> sendCAS() method as if it was waiting for a reply? This is certainly not
> intent behind this API. It is an asynchronous call and should not wait for
> a reply when the request is dispatched. How are you getting CASes? Do you
> have your own CAS pool or use the one the UimaAsynchronousEngine provides.
> How big is the CAS pool? Are you getting any replies via a
> entityProcessComplete() callback? Which version of uima-as are you using:
> 2.3.1 or recent build from svn?
> To your questions:
> 1) What do you mean by "..disable the response feature"? The sendCAS() is
> asynch method which should not block. If it is blocking, than this is a bug
> in UIMA AS client. To debug this problem, you can
> 2) The UimaAsynchronousEngine can be called from multiple threads and use
> of ThreadPoolExecutor seems fine.
> 3) Have you tried to scale the pipeline to allow multiple CASes to be
> processed at the same time? .
> Jerry
> On Wed, Feb 1, 2012 at 5:11 AM, Spico Florin <spicoflorin@gmail.com>wrote:
>> Hello!
>> I have application client that is receiving messages from a Queue via JMS.
>> The message is then packed in a JCas and sent to the UIMA AS pipeline via
>> UimaAsynchronousEngine.
>> If the UIMA AS pipeline processing is slow then it impacts the client in
>> the way that the received messages from the
>> Queue will not be sent as they arrived. I'm using sendCAS(CAS) method of
>> UimaAsynchronousEngine, thus the call to pipeline should be asynchronous
>> (as specfied in the spec).
>>  In my opinion the described behavior is not as expected (i.e. the client
>> should not be affected by the UIMA pipeline performance and
>> it should send the received messages for processing right away, without
>> waiting some responses).
>>  My questions are:
>> 1. I suspect, that my client is somehow waiting the response from the
>> pipeline. Is there any way to disable the response feature?
>> 2. I'm using a thread pool executor that is sending the messages to UIMA
>> pipeline. Is this a good approach?
>> 3. How to design my client in order to send the messages to the pipeline
>> without concerning the pipeline performance?
>> I look forward for your answers and advices.
>>  Thank you.
>>   Best regards,
>>    Florin

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message