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

Marshall Schor updated UIMA-3691:
---------------------------------

    Description: 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 UIMA 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.  (was: 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.)

> 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 UIMA 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