Marshall Schor created UIMA-3691:
------------------------------------

             Summary: support multi-threaded shared contexts for CasPools for 
CAS Multipliers
                 Key: UIMA-3691
                 URL: https://issues.apache.org/jira/browse/UIMA-3691
             Project: UIMA
          Issue Type: Improvement
          Components: Core Java Framework
    Affects Versions: 2.5.0SDK
            Reporter: Marshall Schor
            Assignee: Marshall Schor
            Priority: Minor
             Fix For: 2.6.0SDK


The current UIMA framework design is quite flexible when it comes to producing 
analysis engines (AEs), to allow various scale-outs on a single JVM. When 
scaled out, via multiple instances of the AEs, it's possible to have the 
multiple instances share the UIMA Context (by passing a reference to it in 
additional params). The current design for CAS Multipliers creates a pool for 
each CAS Multiplier, and hangs it off of the UIMA Context.  The problem with 
this approach is that if the scaleout approach chooses to share a common CAS 
Context with all scaled out instances, then the CAS pool will run out of CASes. 
 A better design is to hang the pool off of an object that will scale with the 
Annotator itself, rather than the shared context.  This can be done by changing 
the implementation of getEmptyCas() in the CasMultiplier_implBase class(es).  
The current implementation calls the same method on the (potentially shared) 
UIMA Context object; this could be deprecated with a note saying that this will 
still work, but not with scaled out impls that share the UIMA context object.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to