[ 
https://issues.apache.org/jira/browse/UIMA-1245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12676308#action_12676308
 ] 

Burn Lewis commented on UIMA-1245:
----------------------------------

To summarize my understanding of recent discussions ...

First I'd like to suggest that the default should not change.  Processing the 
parent last does not guarantee that UIMA-AS will act like core UIMA ... in 
addition the size of all downstream pools must be set to 1 to ensure that each 
child is processed sequentially.  We should document the settings needed for 
UIMA-like processing but I think the default should be UIMA-AS style 
processing, i.e. processParentLast="false".

With the current design parents are held in the final step of an aggregate 
until all children have completed processing in that aggregate.  This ensures 
that any child errors can be reported on the input CAS, and that aggregate CMs 
satisfy the CM contract of not processing the parent until all children have 
been returned.  If this aggregate is nested in another, the same conditions 
hold at the final step of the outer aggregate.

But with this new processParentLast="true" option the parent must be held after 
the CM until all of its children have completed processing in all aggregates, 
i.e. have been returned to their pool.  Unlike the previous case we must track 
the number of children active in any of the nested aggregates.

> Processing order of parent CAS different on UIMA and UIMA AS
> ------------------------------------------------------------
>
>                 Key: UIMA-1245
>                 URL: https://issues.apache.org/jira/browse/UIMA-1245
>             Project: UIMA
>          Issue Type: Bug
>          Components: Async Scaleout
>            Reporter: Eddie Epstein
>
> Arron Kaplan raised the question of when parent CASes are processed relative 
> to their children. See http://markmail.org/message/5cop7iv2nshouhgs  As of 
> now, the processing order for a multi-threaded UIMA AS aggregate is different 
> than that for a single-threaded UIMA aggregate.
> A discussion with Burn, Adam, Jerry, Marshall and myself concluded that the 
> default processing order for UIMA AS should be changed to be the same as in 
> UIMA, in order to have the same application behavior for both. This will be 
> done by suspending flow of a parent CAS after it is returned from a 
> CasMultiplier delegate until all its children CASes have finished processing.
> However, there also needs to be a UIMA AS deployment option for CasMultiplier 
> delegates that allows the parent CAS to resume processing immediately after 
> being returned from the CM. This option is needed to enable parallel 
> processing.

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

Reply via email to