[ 
https://issues.apache.org/jira/browse/OOZIE-1319?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13966921#comment-13966921
 ] 

Robert Kanter commented on OOZIE-1319:
--------------------------------------

{quote}I think the concurrency also need to be 2 if you get two actions in 
waiting.{quote}
That just made both actions do RUNNING at the same time instead of in sequence

I think the problem is that the query used to get the Jobs is this (for FIFO; 
FILO is just this with the order as "desc"):
{noformat}
select a.id, a.jobId, a.statusStr, a.pending, a.nominalTimestamp, 
a.createdTimestamp from CoordinatorActionBean a where a.jobId = :jobId AND 
a.statusStr = 'READY' order by a.nominalTimestamp
{noformat}
Even though I made the data available for both actions at the same time, Oozie 
didn't transition them to READY at the same time, so when this query was 
executed, there was only ever 1 action in READY -- that's why it didn't seem to 
do anything.  I was thinking that this may depend partly on the timing of the 
actions transitioning from WAITING to READY, which doesn't happen 
simultaneously for all actions.  
I tried modifying the example to have 4 actions; I then waited for all of them 
to be WAITING and put up the data; the \@4 went to RUNNING and the rest 
eventually went to READY.  I was then expecting those to go to SKIPPED because 
the query should be looking for them; however, they stayed READY and just went 
in sequence to RUNNING and SUCCEEDED.

tldr; the patch isn't working :(


{quote}Overall, this execution control is not really a well-defined 
property.{quote}
My understanding of LAST_ONLY is that if multiple actions are WAITING or READY, 
only one of them should actually run while the rest are skipped.  What's not 
clear to me is if the "LAST" means the oldest action (i.e. the _last_ one in 
the list) or the newest action (i.e. the _last_ one to be added); though this 
isn't too hard to switch around once we get the rest of this working.  It may 
make sense to add a "FIRST_ONLY" for the opposite or something.

[~bowenzhangusa], are you planning on still doing this?  Or do you mind if I 
take a stab at it?

> "LAST_ONLY" in execution control for coordinator job still runs all the 
> actions
> -------------------------------------------------------------------------------
>
>                 Key: OOZIE-1319
>                 URL: https://issues.apache.org/jira/browse/OOZIE-1319
>             Project: Oozie
>          Issue Type: Bug
>            Reporter: Bowen Zhang
>            Assignee: Bowen Zhang
>         Attachments: oozie-1319.patch
>
>
> In execute() of CoordJobGetReadyActionsJPAExecutor.java, once we retrieve the 
> top item from a "LIFO" query result, we do not discard or delete the 
> remaining items from the result list. As a result, the next time execute() is 
> invoked, we will be retrieving the next item in line. Consequently, LAST_ONLY 
> strategy will also execute all ready actions for a given coordinator job, 
> making it no different than LIFO.



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

Reply via email to