Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
For deployments consisting of async aggregate, the uima-as does not allow concurrent processing of input CASes. In this design, the thread servicing an input queue is intentionally blocked until the input CAS is fully processed. Only than, the thread is allowed to dequeue the next CAS. This design was motivated by the desire to enforce fair load balancing where each service/process takes as many CASes as it can process without blocking waiting for a free instance of a CAS (from service CasPool). The motivation is still valid, but it looks like the implementation of the idea is wrong.
Suggestion is to force the service thread to fetch a CAS before trying to dequeue a CAS. This design ensures that the service only takes as many CASes from a queue as it is capable of processing.